Spring框架中@Controller类下的返回值
Spring中Controller返回值
返回String
根据字符串名返回需要相应在/templates下的html文件
需要同时返回数据时, 只需要在Controller内部声明
Model
/ModelMap<String, Object>
添加数据即可
1
2
3
4
5"/save", method=RequestMethod.POST) (value=
public void save(Demo demo, Model model) {
model.addAttribute("msg", "Success");
return "success"
}重定向(redirect)
浏览器中url会进行改变, 但是重定向的页面无法传递request请求, 只能够重新创建request并提交
1
2
3
4"/save", method=RequestMethod.POST) (value=
public void save(Demo demo) {
return "redirect:/demo/detail"
}页面转发(forward)
浏览器中url不会改变, 但是会将到这个页面
(/save)
的request传递到指定页面(/demo/detail)
, 保证数据一致性
1
2
3
4"/save", method=RequestMethod.POST) (value=
public void save(Demo demo) {
return "forward:/demo/detail"
}@ResponseBody
方法上声明了
@ResponseBody
注解, 则会将返回的数据(String/Model)直接输出到页面中(String/JSON)
1
2
3
4
5
6"/print") (value=
public String print(){
String message = "Hello World, Spring MVC!";
return message;
}
返回ModelAndView
定义ModelAndView对象并返回, 对象中可添加model数据、指定view
ModelAndView中可以设置view, 同时也可以设置model对视图进行渲染
1
2
3
4
5
6"/save", method=RequestMethod.POST) (value=
public ModelAndView save(Demo demo) {
ModelAndView mav = new ModelAndView("hello");//实例化一个VIew的ModelAndView实例
mav.addObject("message", "Hello World!");//添加一个带名的model对象
return mav;
}
返回void
对应返回的视图就是路由路径
1
2
3
4"/demo/get", method=RequestMethod.GET) (value=
public void getDemo() {
return; // 返回的视图名称为demo文件夹下的get.html
}
@Controller
注释的类中的方法都可以直接通过HttpServletRequest和HttpServletResponse控制request和response
1 | "/demo/get", method=RequestMethod.GET) (value= |
参考资料:
[1] http://www.cnblogs.com/liuwt365/p/5686659.html