spring mvc控制器映射不同的方式
Posted
技术标签:
【中文标题】spring mvc控制器映射不同的方式【英文标题】:spring mvc controller mapping different ways 【发布时间】:2016-04-01 10:30:07 【问题描述】:这两种@RequestMapping
有什么区别? (一般情况下,不包括传递给页面和映射页面的参数),
正确的方法是返回模型或页面?
@RequestMapping("/")
public String index(Model model)
model.addAttribute("categories", myService.listGroups());
return "index";
@RequestMapping(value = "/", "/helloworld**", method = RequestMethod.GET)
public ModelAndView welcomePage()
ModelAndView model = new ModelAndView();
model.addObject("title", "Spring Security Tutorial");
model.addObject("message", "Welcome Page !");
model.setViewName("helloworld");
return model;
【问题讨论】:
除了 url,第一个适用于 POST、PUT 等,第二个仅适用于 GET 【参考方案1】:区别主要在于句法。另请注意,通常将ModelAndView
声明为方法参数,而不是实例化它。
Model
as param + String
查看返回值优点:
ModelAndView
作为返回值和参数优点:
RedirectView
(例如,与字符串视图相比,它允许您设置准确的 3** HTTP 响应状态,而无需接触甚至声明 HTTP Servlet 响应参数: Set HTTP status code for redirect when returning a String in a Spring 3 controller)
另见:
When to use ModelAndView vs Model in Spring? Which is better, return "ModelAndView" or "String" on spring3 controller What is the difference between return ModelAndView and return String in Spring MVC?【讨论】:
以上是关于spring mvc控制器映射不同的方式的主要内容,如果未能解决你的问题,请参考以下文章
Spring mvc 发现不明确的映射。无法映射控制器 bean 方法
Ajax 将“映射”对象传递给 Spring MVC 控制器