1.Controller代码:
@Controller
public class ItemList3 {
@RequestMapping("/queryItems.action")
public ModelAndView queryItems() throws Exception{
//商品列表
List<Items> itemsList = new ArrayList<Items>();
Items items_1 = new Items();
items_1.setName("联想笔记本");
items_1.setPrice(6000f);
items_1.setDetail("ThinkPad T430 联想笔记本电脑!");
Items items_2 = new Items();
items_2.setName("苹果手机");
items_2.setPrice(5000f);
items_2.setDetail("iphone6苹果手机!");
itemsList.add(items_1);
itemsList.add(items_2);
//创建modelAndView准备填充数据、设置视图
ModelAndView modelAndView = new ModelAndView();
//填充数据,,相当于request.setAttribut(); 在jsp页面中通过itemsList取数据
modelAndView.addObject("itemsList", itemsList);
//视图
modelAndView.setViewName("/itemsList.jsp");
return modelAndView;
}
}
2.向spring容器中加载Handler:(组件扫描器)
使用组件扫描器省去了向spring容器中配置每个controller的繁琐。使用<context:component-scan>,自动扫描带有@controller标记的Handler控制器类。
<!-- 扫描指定包的Handler,不用一个一个将Handler布置到spring容器中 -->
<context:component-scan base-package="cn.edu.hpu.springmvc.controller"></context:component-scan>
3.注解的处理器映射器(HandlerMapping):
注解式处理器映射器对标有@RequestMapping的方法进行映射,根据RequestMapping定义的url,匹配RequestMapping标记的方法,若匹配成功,则HandlerMethod给前端控制器,HandlerMethod对象中封装url对应的方法Method。
<!--注解映射器 -->
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping"/>
4.注解的处理器适配器(HandlerAdapter):
注解式的处理器适配器,对标有@RequestMapping的方法进行适配。
<!--注解适配器 -->
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"/>
5.<mvc:annotation-driven>
<!-- 使用 mvc:annotation-driven代替上边注解映射器和注解适配器配置
mvc:annotation-driven默认加载很多的参数绑定方法,
比如json转换解析器就默认加载了,如果使用mvc:annotation-driven不用配置上边的RequestMappingHandlerMapping和RequestMappingHandlerAdapter
实际开发时使用mvc:annotation-driven
-->
<mvc:annotation-driven></mvc:annotation-driven>