我有一个spring(3.1)控制器动作方法,如下所示:
@RequestMapping(value="/{id}")
public String myAction(@PathVariable("id") long someId) { ... }
我想介绍一个布尔值:
public String myAction(@PathVariable("id") long someId, boolean doBranch) { ... }
但是,我希望根据访问该方法的URL来设置布尔值。换句话说,我想要
/foo/123 => myAction(123,false)
/debug/foo/123 => myAction(123,true)
我知道我可以在RequestMapping注释中添加多个url,但是我还没有看到让映射本身影响参数的方法,没有传递参数或过程(/foo/123?doBranch=true"
)。
我可以以某种方式轻松扩展Spring来做到这一点吗?或者那里有什么可以做到的?
答案 0 :(得分:4)
我知道这不是最优雅的方式,但是:
@RequestMapping("/foo/{id}")
public String myActionA(@PathVariable("id") long someId) {
return myAction(someId, true);
}
@RequestMapping("/debug/foo/{id}")
public String myActionB(@PathVariable("id") long someId) {
return myAction(someId, false);
}
public String myAction(@PathVariable("id") long someId, boolean doBranch) { ... }
只需将网址映射到使用true
或false
调用第三种方法的两种不同方法。