SpringMVC 中 Controller 的返回值说明

SpringMVC 中 Controller 方法的返回值可以是以下几种类型:
1. ModelAndView
@RequestMapping(“/test”)
public ModelAndView test(){
ModelAndView modelAndView = new ModelAndView(“/test”);
modelAndView.addObject(“key”, “value”);
return modelAndView;
}

返回的是一个包含模型和视图的ModelAndView对象,其构造函数就可以指定返回页面,或者可以通过setViewName方法来设置返回页面。

@RequestMapping(“/test”)
public ModelAndView test(){
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName(“/test”);
modelAndView.addObject(“key”, “value”);
return modelAndView;
}

2. Map
@RequestMapping(“/test”)
public Map<String, String> test(){
Map<String, String> map = new HashMap<String, String>();
map.put(“key”, “value”); //map.put相当于request.setAttribute方法
return map;
}

响应的View 同 Void,与访问的地址对应。

3. Model
本身是个接口,实现类是ExtendedModelMap,继承自ModelMap
4. ModelMap
ModelMap 继承自LinkedHashMap
5. View
常用来返回pdf,excel等文件。
6. String
@RequestMapping(“/test”)
public String test(Model model) {
List<User> users = userService.getUsers();
model.addAttribute(“users”, users);

return “/test”;
}

返回值表示响应的View,和Model一起可以传递返回的数据。

当方法被@ResponseBody修饰,即不需要View而直接返回内容。

7. void
@RequestMapping(“/test”)
public void test(){

}

默认找 /test 页面。

——

爱是理解,不是禁锢。生是见识,不是活着。