Spring MVC:处理方法返回值的可选类型

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自己定义实现相关输出直观明了)

你可能感兴趣的:(spring,mvc)