Spring mvc Spring MVC多个@RequestMappings
我正在使用UrlBasedViewResolver。我的要求是,两个不同的URL与同一个控制器通信,它们应该根据URL转到两个不同的页面,即page1或page2。 这两个页面具有相同的模型对象,它们几乎相同,除了一些小的UI更改。如何在SpringMVC中巧妙地实现这一点Spring mvc Spring MVC多个@RequestMappings,spring-mvc,Spring Mvc,我正在使用UrlBasedViewResolver。我的要求是,两个不同的URL与同一个控制器通信,它们应该根据URL转到两个不同的页面,即page1或page2。 这两个页面具有相同的模型对象,它们几乎相同,除了一些小的UI更改。如何在SpringMVC中巧妙地实现这一点 @RequestMapping(value = {"/page1","/page2"}, method=RequestMethod.GET) public String displayPage(ModelMap map){
@RequestMapping(value = {"/page1","/page2"}, method=RequestMethod.GET)
public String displayPage(ModelMap map){
// return to Page1 or Page2 accordingly wherever it came from
}
@RequestMapping(value = {"/page1","/page2"}, method=RequestMethod.POST)
public ModelAndView submitPage(@ModelAttribute("model") Model model){
return new ModelAndView("page1 or page2", "command", model);
}
一种选择:
@RequestMapping(value = {"/page1"}, method=RequestMethod.GET)
public String displayPage1(ModelMap map){
displayPageCommon(map);
return "Page1";
}
@RequestMapping(value = {"/page2"}, method=RequestMethod.GET)
public String displayPage2(ModelMap map){
displayPageCommon(map);
return "Page2";
}
private void displayPageCommon(ModelMap map){
//shared code
}
另一个:
@RequestMapping(value = {"/{pageName}"}, method=RequestMethod.GET)
public String displayPage(@PathVariable String pageName, ModelMap map){
//shared code
return pageName;
}
第二个选项可能会有一些问题,具体取决于您的控制器映射,以及由于尝试基于传入URL返回视图而引起的一些潜在安全问题。谢谢您的输入。第二种方法似乎确实存在一些安全问题,传统方法更好。