web-dev-qa-db-ja.com

複数のSpring @RequestMappingアノテーション

メソッドで複数の@RequestMappingスプリングアノテーションを使用することは可能ですか?のような:

@RequestMapping("/")
@RequestMapping("")
@RequestMapping("/welcome")
public String welcomeHandler(){
 return("welcome");
}
219
wuntee

@RequestMappingにはString[] valueパラメーターがあるため、次のように複数の値を指定できるはずです。

@RequestMapping(value={"", "/", "welcome"})

391
Ed Brannin

私のテスト(春3.0.5)から、@RequestMapping(value={"", "/"})-"/"のみが機能し、""は機能しません。しかし、私はこれが機能することを発見しました:@RequestMapping(value={"/", " * "})" * "は何にでも一致するため、他にない場合のデフォルトのハンドラーになります。

22
Alan Zhong

する必要はありません。 RequestMapping注釈は、ワイルドカードとantスタイルのパスをサポートしています。また、デフォルトのビューが必要なように見えるので、

<mvc:view-controller path="/" view-name="welcome"/>

構成ファイル内。これにより、ルートへのすべてのリクエストがウェルカムビューに転送されます。

12
Robby Pond

呼び出されたURIを取得したい場合は、PathVariableアノテーションを使用することをお勧めします。

@PostMapping("/pub/{action:a|b|c}")
public JSONObject handlexxx(@PathVariable String action, @RequestBody String reqStr){
...
}

またはリクエストオブジェクトから解析します。

0
CQLI

現在、Spring-Bootを使用している場合、{}は機能しません。

@RequestMapping

値パラメーターとしてまだString []があるため、宣言は次のようになります。

 @RequestMapping(value=["/","/index","/login","/home"], method = RequestMethod.GET)
0
Falcon

最短の方法は:@RequestMapping({"", "/", "welcome"})

次のこともできますが:

  • @RequestMapping(value={"", "/", "welcome"})
  • @RequestMapping(path={"", "/", "welcome"})
0
Marco