RequestMapping注解除了正常匹配URL映射外有几个作用:
1、窄化请求映射
在controller类上给一个根路径
2、请求方法限定
在使用@RequestMapping(value="路径" method={request.GET,request.POST})
Controller方法的返回值
1、返回ModelAndView
需要方法结束时,定义ModelAndView,将Model和View分别设置。
ModelAndView modelAndView = new ModelAndView();
modelAndView.addObject("list",list);
//指定视图
modelAndView.setViewName("sucsess");
2、返回String
如果controller方法返回string,表示返回逻辑视图名
真正视图(jsp路径)=前缀+逻辑视图名+后缀
@RequestMapping("/queryItems")
public String queryitems(Model model)throws Exception{
//调用service根据商品id查询商品信息
//ItemsCustom itemsCustom = itemsService.findItemsByID(1);
//通过形参中的model将model数据传到页面
//相当于ModelAndView.addObject()方法
//model.addAttribute("itemsCustom",itemsCustom);
return "items/edititems";
}
2、redirect 重定向
商品修改提交后,重定向到商品查询列表。
redirect重定向特点:浏览器地址栏中的URL会变化。修改提交的request数据无法传到重定向的地址。
因为重定向后重新进行request(request无法共享)
return redirect:"queryItems.actioon";
3、forward页面转发
通过forward进行页面转发,浏览器地址栏URL不变,request可以共享。
return "forward:queryItems.action"
返回void
1、使用request转向页面,如下:
request.getRequestDispatcher("页面路径").forward(request,response);
2、也可以通过response页面重定向
response.sendRedirect("url")
3、使用此方法可以通过修改response,设置响应的数据格式,比如响应json数据格式。
httpServletResponse.setCharacterEncoding("utf-8");
httpServletResponse.setContentType("application/json;charset=utf-8");
httpServletResponse.getWriter().write("json串");