一、@RequestMapping
在springmvc中其具有三个功能:
1、 url映射,其定义了controller方法对应的url,进行处理器映射使用。
使用方式:
在controller的方法上定义@RequestMapping
//@RequestMapping实现对queryItems方法和url进行映射,一个方法对应一个url
//一般建议将url和方法写成一样
@RequestMapping("/queryItems")
public ModelAndView queryItems()throws Exception{
}
2、窄化请求映射
即在controller类上定义方法映射路径的跟路径,方便对url进行分类管理,类似与strus.xml中包的命名空间。
3、限制http请求方法
二、controller方法的返回值
1、返回ModelAndView 需要方法结束时,定义ModelAndView,将model和view分别进行设置。
例子:
@Override
public ModelAndView handleRequest(HttpServletRequest request,
HttpServletResponse response) throws Exception {
//调用service查找 数据库,查询商品列表,这里使用静态数据模拟
List<Items> itemsList = new ArrayList<Items>();
//向list中填充静态数据
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("/WEB-INF/jsp/items/itemsList.jsp");
return modelAndView;
}
2、返回string
如果controller方法返回string,需要在controller方法的形参中添加Model。
(1)表示返回逻辑视图名。
真正视图(jsp路径)=前缀+逻辑视图名+后缀
(2)redirect重定向
商品修改提交后,重定向到商品查询列表。
redirect重定向特点:浏览器地址栏中的url会变化。修改提交的request数据无法传到重定向的地址。因为重定向后重新进行request(request无法共享)
(3)forward页面转发
通过forward进行页面转发,浏览器地址栏url不变,request可以共享。