1

私は次のようなスプリング(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を拡張してそれを行うことができますか?それとも、それを行う何かがすでにそこにありますか?

4

1 に答える 1

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またはのいずれかを使用して3番目のメソッドを呼び出す2つの異なるメソッドにURLをマップするだけfalseです。

于 2012-05-04T01:21:43.607 に答える