【发布时间】:2012-04-03 10:35:30
【问题描述】:
我正在使用 Spring 3.1 开始一个新项目,并且已经深入了解了有关如何使用 @Controller 注释的所有文档和论坛意见。
我个人不喜欢为 MVC 使用注解;我更喜欢使用 SimpleUrlHandlerMapping 将 web 应用程序的所有 URL 放在一个地方。
此外,从之前使用 Spring 2.x 的许多工作中,我非常习惯于 BaseCommandController 层次结构。
我一直很喜欢 Spring,因为它赋予了力量而不受限制。现在我发现 Spring MVC 迫使我将 URL 放入 java 源代码中,这意味着(a)我无法将控制器映射到多个 URL,并且(b)要发现 webapp 中正在使用哪些 URL,我必须扫描通过不同的java源文件,我觉得不切实际。
请问@Controller 与 SimpleUrlHandlerMapping 结合的推荐方式是什么?
更新:
嗨,Dave,您是说可以像这样映射多个 URL(从 petclini.web.ClinicController 更改)?
@RequestMapping({"/vets", "/another"})
public ModelMap vetsHandler() {
如果这样就很好了。
我的问题仍然存在: 如果我不想在我的 java 源代码中使用 URL,如何最好地将它们与 @Controller 类映射?
问候,
【问题讨论】:
-
我不知道你不能再映射多个 url,你有文档参考吗?
-
使用@(用户名)作为评论回复 cmets - 如果您向某人询问嵌入在您原始问题中的问题,他们可能永远不会看到它。我问你是否改变了,如果改变了,提供一个文档链接。就我个人而言,我会使用this 之类的东西进行路由;我推出了自己的,但显然其他人也这样做了。
-
@Dave Newton:谢谢你的链接,我会调查的。 (顺便说一句:我在问题中回答了,所以我可以格式化代码)
-
我理解格式化的必要性,但是如果没有人看到它,它的格式化有多好也没关系:) 此外,对于这么短的东西,
@RequestMapping({"/url1", "/url2"})可能就足够了。 -
我现在玩得很好。起初,我认为这是一个好主意,想要提示您将其设为格式答案,但不幸的是,它似乎没有正确处理方法级别 @ModelAttribute,因此我的参考数据没有被填充。耻辱。
标签: spring spring-mvc annotations spring-annotations