1

我想知道在解析控制器类时是否可以使Spring MVC像Stripes一样工作。基于包的控制器在Spring MVC中解析

通常,我可以用@RequestMapping注释一个控制器,以便将其映射到其URL。

然而,我的老板要求一个从Stripes中派生出来的约定配置机制,我们正在逐步放弃多年的工作。

您会看到,条带Actions在类路径中的包名称下包含stripes.action。每个子包都是一个虚拟目录,最终名为SomethingAction的类将映射到url Something.action

焕我需要做的是:

com.example.product.web.controllers.secure.admin.UserController映射到/secure/admin/user com.example.something.different.from.before.web.controllers.pub.WelcomeController mapping/pub/welcome

基本上我想提出的Spring MVC自动地根据自己的完整的类名称,而不是使用映射控制器每个控制器上的@RequestMapping

重要!如果Spring MVC已经有一个命名约定,那么我不需要命名约定(web.controllers)。我只需要一个。

到目前为止我还没有发现任何线索。 谢谢

回答

1

ControllerClassNameHandlerMapping它是开箱即用的,你期待什么。

只需将基础包设置为com.example.product.web.controllers,子包就会映射为路径。从API文档引用

指定一个基本包如“com.mycompany.myapp”为包括基本包内的子包作为路径元件,例如为类名“com.mycompany.myapp.mymodule.BuyForm”生成路径“/ mymodule/buyform”。

子包分层结构被表示为单独的路径元素,例如, “/ mymodule/mysubmodule/buyform”作为类名“com.mycompany.myapp.mymodule.mysubmodule.BuyForm”。

请注意,它仅限于只有一个基本包。因为需要扫描不同的软件包层次结构,因此必须相应地定制ControllerClassNameHandlerMapping的行为。

相关问题