的Spring MVC请求映射编程
问题描述:
在弹簧-MVC注释控制器:的Spring MVC请求映射编程
@RequestMapping(value = "/my")
public class MyController {
@RequestMapping(value = "/something")
public doSomething() {
}
public String getPath() {
return "somethingElse";
}
}
对于RESTful服务中,每个资源通常与域中的类别相关联。例如,对于User对象,通过POST进行更新的URL可以是/ myapp/user;对于SomeOtherData,我的网址将是/ myapp /别的。
我希望能够确定我给定类的Restful服务的URL。我想要一种将类关联到url的方法,而不必在别处保留关联。
那么,有没有办法让我通过使用Spring MVC调用方法(比如getPath())来以编程方式设置路径?
答
编辑:我已经改变了我的回答对您展示如何使用@PathVariable
以模拟“的setpath()”方法。
我不相信你可以做到这一点,但你可以使用动态路径元素来模拟这种效果。
@RequestMapping(value = "/my")
public class MyController {
private String supportedPath = "default";
@RequestMapping(value = "/{aPathElement}")
public void doSomething(@PathVariable("aPathElement") String elementName) {
if(elementName.equals(supportedPath) {
//do something...
} else {
//send 404 page not found...
}
}
public void setPath(String newPath) {
supportedPath = newPath;
}
}
答
1. 逆转的最佳解决方案是一个集中路由器像在轨道(https://*.com/a/12881531/2533287)
2. 可能你只需要定义路径为一个常数
@RequestMapping(value = MyController.PATH)
public class MyController {
public static final String PATH="/my";
@RequestMapping(value = "/something")
public doSomething() {
}
public static String getPath() {
return PATH;
}
}
...
String myControllerUrl = MyController.getPath();
3.
有没有办法让我设置th e路径通过调用方法,比如说getPath(),用Spring MVC
我不明白你想设置什么路径?控制器或“字符串路径”变量的路径在别的地方?
谢谢,但那不是我想要做的。 – ltfishie 2012-02-17 20:05:27
@ltfishie检查我的编辑。 – 2012-02-17 20:26:39
也许你可以阐述你需要做什么。 – Scott 2012-02-17 20:26:54