我有一个这样的弹簧控制器/ POJO:
@RequestMapping("/foo");
public class MyController {
@RequestMapping("/bar")
public String MyAction() { return someSharedFunc(false); }
@RequestMapping("/debug/ping");
public String MyDebugPing() { return someSharedFunc(true); }
private String someSharedFunc(boolean debug) {
if(debug) return "FooBar"; else return "Debug!";
}
}
在此方案中,MyDebugPing的网址为/foo/debug/ping
。但是,我希望它是/debug/ping
,实际上忽略了类上的RequestMapping。
这可能吗?
答案 0 :(得分:5)
只需从类中删除@RequestMapping
注释,并使用每个方法的完整路径。例如。
public class MyController {
@RequestMapping("/foo/bar")
public String MyAction() { return someSharedFunc(false); }
@RequestMapping("/debug/ping");
public String MyDebugPing() { return someSharedFunc(true); }
private String someSharedFunc(boolean debug) {
if(debug) return "FooBar"; else return "Debug!";
}
}
如果有很多方法,那么您可以简单地将方法移出到另一个控制器。