chu*_*ubs 9 java spring default spring-mvc url-routing
我无法找到解决方案,这让我发疯了.我有@Controller映射,它使用@RequestMapping响应多个方法.当没有指定更具体的内容时,我想将其中一个方法标记为默认值.例如:
@Controller
@RequestMapping("/user/*")
public class UserController {
@RequestMapping("login")
public String login( MapModel model ) {}
@RequestMapping("logout")
public String logout( MapModel model ) {}
@RequestMapping("authenticate")
public String authenticate( MapModel model ) {}
}
Run Code Online (Sandbox Code Playgroud)
所以/ user/login - > login方法,/ user/logout - > logout等.我想这样做,如果有人去/ user,那么它会路由到这些方法之一.但是,我没有在@RequestMapping上看到任何允许我将这些方法之一指定为默认处理程序的内容.我也没有看到任何其他注释可能在类上使用这样做.我开始怀疑它不存在.
我正在使用Spring 2.5.6.这是在3.0.0中解决的吗?我可能只是破解Spring使其工作,因为它非常烦人,这不是更直接.
提前致谢.
Len*_*rri 13
看看这个答案:
如果使用以下方法注释方法,该怎么办?
@RequestMapping(method = RequestMethod.GET)
Run Code Online (Sandbox Code Playgroud)
你可以在这里看到一个例子:
Spring 3.0 MVC + Hibernate:简化了注释 - 教程
在这里可以看到相同的行为:
Aaron Schram的Spring Framework 3.0 MVC(见第21页)
简短回答:我不知道如何使用简单标记简单地将一个方法指定为默认值.
但有这个......
我不知道在哪个版本的Spring中实现了这个版本,但你可以在3.1.2中提供多个values @RequestMapping.所以我这样做:
@Controller
@RequestMapping("/user")
public class UserController {
@RequestMapping(value = {"", "/", "/list"}, method = RequestMethod.GET)
public String listUsers(ModelMap model) { }
@RequestMapping(value = "/add", method = RequestMethod.POST)
public ModelAndView add(HttpServletRequest request, ModelMap model) { }
}
Run Code Online (Sandbox Code Playgroud)
然后,以下网址将映射到listUsers():
| 归档时间: |
|
| 查看次数: |
14556 次 |
| 最近记录: |