Spring Boot中的return new ModelAndView("xxx") 和 return "xxx"的区别
来源:互联网 发布:windows怎么截图窗口 编辑:程序博客网 时间:2024/06/07 20:34
1. return new modelAndView("XXX") 是包括视图和数据的,
而return "XXX" 只是视图,他会根据你配置文件里试图解析器的配置,帮你匹配好前缀,后缀然后跳转到XXX这个页面。
比如 return "index",你配置文件里的前缀是“/templates/”,后缀是“.html,就会跳转到XXX/templates/index.html页面。
return new modelAndView("index"),这个modelAndView 里面包括视图名view,和数据model,
里面的view 和return "index"是一样的流程,只不过同时也会传递过去model这个数据。
2. return "XXX" 只能使用@Controller注解,不能使用 @RestController注解,否则就会返回把视图名称当字符串返回,并不会渲染视图。return new modelAndView("XXX") 使用 @RestController 和 @Controller注解都可以正常渲染视图。
比如 一个类class加了@RestController, @RestController注解内包含了@ResponseBody。
@ResponseBody的意思是返回的不是视图,也就是视图解析器不回去查找该视图名的模板,
而return "XXX" 只是视图,他会根据你配置文件里试图解析器的配置,帮你匹配好前缀,后缀然后跳转到XXX这个页面。
比如 return "index",你配置文件里的前缀是“/templates/”,后缀是“.html,就会跳转到XXX/templates/index.html页面。
return new modelAndView("index"),这个modelAndView 里面包括视图名view,和数据model,
里面的view 和return "index"是一样的流程,只不过同时也会传递过去model这个数据。
2. return "XXX" 只能使用@Controller注解,不能使用 @RestController注解,否则就会返回把视图名称当字符串返回,并不会渲染视图。return new modelAndView("XXX") 使用 @RestController 和 @Controller注解都可以正常渲染视图。
比如 一个类class加了@RestController, @RestController注解内包含了@ResponseBody。
@ResponseBody的意思是返回的不是视图,也就是视图解析器不回去查找该视图名的模板,
而是以response.getWriter().write("这里就是你写的字符串");方式返回,常用于ajax求情的返回内容。
示例:
a) 使用@RestController注解:
@RestControllerpublic class PersonController { @RequestMapping("mytest") public String indexHtml(Map<String, Object> map) { map.put("msg", "this is a thymeleaf test"); return "hello"; } @RequestMapping("mymodelviewtest") public ModelAndView hello(Map<String, Object> map) { map.put("msg", "this is model view test"); return new ModelAndView("hello"); }}
return "hello" 返回视图名hello,并没有渲染视图hello.html。
return new ModelAndView("hello") 正常显示了视图内容。
b) 使用@Controller注解:
@Controllerpublic class PersonController { @RequestMapping("mytest") public String indexHtml(Map<String, Object> map) { map.put("msg", "this is a thymeleaf test"); return "hello"; } @RequestMapping("mymodelviewtest") public ModelAndView hello(Map<String, Object> map) { map.put("msg", "this is model view test"); return new ModelAndView("hello"); }}
return "hello" 正常显示了视图内容。
return new ModelAndView("hello") 正常显示了视图内容。
阅读全文
0 0
- Spring Boot中的return new ModelAndView("xxx") 和 return "xxx"的区别
- Springmvc中的return modelAndView和return "xxxx"的区别
- Springmvc中的return modelAndView和return "xxxx"的区别
- SpringMVC利用return new ModelAndView(new RedirectView("xxx.do"), Map map)重定向传递多参数
- SpringMVC利用return new ModelAndView(new RedirectView("xxx.do"), Map map)重定向传递多参数
- Springmvc的return modelAndView和return "redirect:/index"
- return new ModelAndView("redirect:/login.jsp");
- js中的return flase, return true, return的区别
- return 0 和return 1 的区别
- return 0 和 return 1的区别
- return 0 和return 1的区别
- return 0 和return 1的区别
- return 1和return 0的区别
- return null 与return new List<HaierPageView>()的区别
- $.map(data,function(item,index){return XXX})
- C#中的yield return 和return有什么区别
- Exit() 和 Return() 的区别
- exit()和return()的区别
- 【Android】“ xxx” is translated here but not found in default locale
- 学生信息管理系统(三)
- hdu 1280 前m大的数
- 挑战程序竞赛系列(65):4.7字符串上的动态规划(3)
- 指针和数组名
- Spring Boot中的return new ModelAndView("xxx") 和 return "xxx"的区别
- boost :: scoped_ptr的和std ::的unique_ptr的区别 是之间的唯一不同boost::scoped_ptr<T>和std::unique_ptr<T>的事实std::uni
- WEB前端性能优化
- 完全卸载GitLab
- jQuery Mobile学习笔记(六)——jQuery Mobile API
- .NET及.NET Core系统架构
- poj 1260 Java实现
- Java applet can't open files under Safari 7
- Spring @Validate 报 :"No validator could be found for type: java.lang.Long" 异常