spring mvc处理方法支持如下的返回方式:ModelAndView, Model, ModelMap, Map,@ResponseBody Object, String, void。下面将对具体的一一进行说明:
1 string 直接返回跳转页面路径(注备不加文件扩展名,一般在配置文件中设置文件后缀)
其中返回路径中加
redirect:前缀表示页面重定向如要为面重定向加入参数需要引用RedirectAttributes对象重定向传参
public String save(@ModelAttribute("group") Group group, RedirectAttributes redirectAttributes) {
accountManager.saveGroup(group);
redirectAttributes.addFlashAttribute("参数名", "参数值");
return "redirect:/account/group/";
}
2 Model, ModelMap, Map相关当于 request.setAttribute 法方 一般结合返回String使用,声明可一直写的方法参数中如
@RequestMapping(value={"/edit"}, method={org.springframework.web.bind.annotation.RequestMethod.GET})
public String edit(Long id, ModelMap model)
3 ModelAndView :
@RequestMapping("/show1")
public ModelAndView show1(HttpServletRequest request,
HttpServletResponse response) throws Exception {
ModelAndView mav= new ModelAndView("返回文件路径");
mav.addObject("返回值名称",返回值);
return mav;
}
通过ModelAndView构造方法可以指定返回的页面名称,也可以通过setViewName()方法跳转到指定的页面 ,
使用addObject()设置需要返回的值,addObject()有几个不同参数的方法,可以默认和指定返回对象的名字。
5 void:如果返回值为空,则响应的视图页面对应为访问地址 具体实现可通HttpServletResponse再在处理
6 @ResponseBody :将内容或对象作为 HTTP 响应正文返回。,并调用适合HttpMessageConverter的Adapter转换对象,写入输出流。(超级不好用建意通过HttpServletResponse自己定义实现相关输出直观明了)