在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 / someother。
我希望能够在给定Class的情况下确定Restful服务的url。我想要一种方法将类关联到url而不必将关联保留在其他地方。
那么,有没有办法让我通过使用Spring MVC调用方法,比如getPath()以编程方式设置路径?
答案 0 :(得分:1)
编辑 :我已更改答案,以说明如何使用@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 :(得分:0)
1。 倒车的最佳解决方案是集中式路由器,例如rails(https://stackoverflow.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
有没有办法让我通过调用方法来设置路径,比如使用Spring MVC调用getPath()
我不明白你想设置什么路径?控制器的路径或其他地方的“字符串路径”变量?