dav*_*ooh 6 java model-view-controller spring annotations spring-mvc
我正在学习Spring 3,我在一个简单的Web应用程序中使用它.
现在我正在使用注释实现Spring MVC Controller,我想知道:有没有使用@RequestMapping注释的最佳实践?
我的意思是:我已经看到通常在这个注释中映射的URL在类中是硬编码的...
有没有办法以"松散耦合的方式"传递URL(以获得更可重用的类)?
我知道有一些可以使用的外卡,但我认为这不是解决方案......我错了吗?
编辑:
我举一个例子来更好地解释我的怀疑.
假设我希望我的控制器由请求触发/foo/bar/baz/mypage.htm,在我的控制器中,处理程序方法将被注释@RequestMapping("/foo/bar/baz/mypage").
现在我决定更改触发我的控制器的URL /foo/bar/otherpage.htm,所以我需要编辑我的类,添加@RequestMapping("/foo/bar/otherpage")我的处理程序方法,重新编译项目并再次部署它.
在我看来不太实际......
目前带注释的控制器不是很容易配置的.
据我所知,唯一可行的办法解决这个问题是使用替代HandlerMapping小号,以便配置控制器的"基础URL".例如,如下:
// Note the absense of @Controller to prevent this controller
// from being discovered by DefaultAnnotationHandlerMapping
public class FooController {
@RequestMapping("/list") public String list(...) { ... }
@ReqeustMapping("/save") public String save(...) { ... }
}
Run Code Online (Sandbox Code Playgroud)
.
<bean
class = "org.springframework.web.servlet.mvc.support.ControllerBeanNameHandlerMapping" />
<bean name = "/foo" class = "FooController" />
<bean name = "/bar" class = "FooController" />
Run Code Online (Sandbox Code Playgroud)
在这个例子中的两个实例FooController手柄/foo/list,/foo/save,/bar/list和/bar/save分别.
即将推出的Spring 3.1将有一个改进的Spring 3.1架构(Spring 3.1 M2:Spring MVC增强版),它似乎更灵活,但我尚未检查它.
| 归档时间: |
|
| 查看次数: |
4260 次 |
| 最近记录: |