阿里零售通拍档收入:Spring及应用(6)
来源:百度文库 编辑:中财网 时间:2024/05/01 12:29:11
Spring及应用(6)
2009-03-25 23:02:56| 分类: Java 编程 | 标签: |字号大中小 订阅
***************************
Spring的常用工具类
**************************
1、org.springframework.beans.support.PagedListHolder类:
用来作分页功能,只要创建一个PagedListHodler类的实例,并将一个要进行分页管理的List设置给它的source属性(通过调用它的setSource(List)方法,或者在构造函数中传递这个List),就可以进行分页管理了。例如:
public class AddItemToCartController implements Controller {
...
public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {
...
return new ModelAndView("Cart", "cart", cart); //第一个参数是视图名字,第二个参数是模型名字,第三个参数是模型实例。模型名字在视图文件中用来获取模型数据时使用的。
}
}
public class Cart implements Serializable {
...
private final PagedListHolder itemList = new PagedListHolder();
public Cart() {
this.itemList.setPageSize(4);
}
public PagedListHolder getCartItemList() { return itemList; }
public void addItem(Item item, boolean isInStock) {
CartItem cartItem = (CartItem) itemMap.get(item.getItemId());
if (cartItem == null) {
cartItem = new CartItem();
cartItem.setItem(item);
cartItem.setQuantity(0);
cartItem.setInStock(isInStock);
itemMap.put(item.getItemId(), cartItem);
itemList.getSource().add(cartItem);
}
...
}
}
Cart.jsp文件的相应内容如下:
"><< Prev
">Next >>
PagedListHolder类提供了功能强大的分页功能,具体方法看源码。
2、org.springframework.web.servlet.mvc.ParameterizableViewController类:
这是个非常简单的控制器,它接收请求,然后返回由viewName属性指定的视图,就没有任何其它操作了。对于Web应用中那些简单的页面请求(不需要作任何处理,只需要直接返回一个简单的页面)
的情况,这个类是个很好的选择,使用它只需要在控制器配置文件声明它并将它与相应的URL对应起来就可以了,例如:
3、上传文件:
比较常见的文件上传组件有Commons FileUpload(http://jakarta.apache.org/commons/fileupload/a>)和COS FileUpload(http://www.servlets.com/cos),Spring已经完全集成了这两种组件,
这里我们选择Commons FileUpload。
由于Post一个包含文件上传的Form会以multipart/form-data请求发送给服务器,必须明确告诉DispatcherServlet如何处理MultipartRequest。首先在
这样一旦某个Request是一个MultipartRequest,它就会首先被MultipartResolver处理,然后再转发相应的Controller,在这个Controller中,将HttpServletRequest转型为MultipartHttpServletRequest,就能非常
方便地得到文件名和文件内容:
...
public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {
// 转型为MultipartHttpRequest:
MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
// 获得文件:
MultipartFile file = multipartRequest.getFile("file");
// 获得文件名:
String filename = file.getOriginalFilename();
// 获得输入流:
InputStream input = file.getInputStream();
// 写入文件...
//或者:
//File source = new File(localfileName.toString());
//multipartFile.transferTo(source);
}
...
********************************
Spring的配置
********************************
1、在WEB-INF/web.xml中配置以下信息:
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/WEB-INF/dataAccessContext-local.xml /WEB-INF/applicationContext.xml
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/WEB-INF/log4j.properties是Log4J的配置文件
/WEB-INF/applicationContext.xml和/WEB-INF/dataAccessContext-local.xml是Spring的IoC功能的配置文件,一般用前者配置业务对象(包括PropertyPlaceholderConfigurer),后者配置数据源、DAO对象和声明式事务管理。
2、在WEB-INF/lib目录中放入相关的包,例如:spring.jar等