Spring MVC の @RequestMapping の使い方をメモしておく。Spring Boot も Spring MVC を使っているので使い方はまったく同じ。
RequestMappng とは
Spring MVC のコントローラに付与して、リクエスト URL に対して、どのメソッドが処理を実行するか定義するアノテーション。
value 属性
value に処理対象とするURLを指定する。
@RequestMapping(value = "/aaa") public String method() { return "index"; }
こう指定することで例えば "http://localhost:8080/aaa/" にアクセスするとこのコントローラが実行される。
Spring というかアノテーションのルールとして、value 属性ひとつだけを指定するのであれば、"value =" の部分は省略可能。したがって、次のように書き換えることもできる。
@RequestMapping("/aaa")
対応するURLを複数指定する際は次のようにする。
@RequestMapping(value = { "/", "/index" })
"value =" を省略して次のように書くこともできる。
@RequestMapping({ "/", "/index" })
value 属性自体を省略することもできる。
@RequestMapping()
この場合、次の記載と同じ意味となる。
@RequestMapping("/")
また "value" は "path" と書き換えても同じである。
@RequestMapping(value = "/aaa")
は、
@RequestMapping(path = "/aaa")
と同じ意味となる。
method 属性
POST でアクセスされたリクエストを処理する場合。
@RequestMapping(path = "/input", method = RequestMethod.POST)
GET でアクセスされたリクエストを処理する場合。
@RequestMapping(path = "/input", method = RequestMethod.GET)
org.springframework.web.bind.annotation.RequestMethod を static インポートしてしまえば、もう少し簡潔に書ける。
import static org.springframework.web.bind.annotation.RequestMethod.*; ・ ・ ・ @RequestMapping(path = "/input", method = GET)
( Eclipse に static import を勝手に整理されてしまい困っている場合はこちらを参照して設定を変更して欲しい。)
POST と GET 両方のリクエストを処理する場合は {} で囲んで複数指定できる。
import static org.springframework.web.bind.annotation.RequestMethod.*; ・ ・ ・ @RequestMapping(path = "/input", method = { GET, POST })
HTTP リクエストのメソッドは GET,POST 以外にも次のものが定義されていて、@RequestMapping の method で指定することも可能。
DELETE
HEAD
OPTIONS
PATCH
PUT
TRACE
method 属性を省略すると POST を処理する設定と同等になる。したがって POST のみを処理したい場合、method 属性自体を省略できる。
Spring Framework 4.3 から追加されたアノテーション
RequestMapping を簡略して書ける GetMapping と PostMapping アノテーションが追加された。
Post の場合、
@RequestMapping(path = "/input", method = RequestMethod.POST)
は、
@PostMapping("/input")
に置き換えることができる。
Get も同様に、
@RequestMapping(path = "/input", method = RequestMethod.GET)
は、
@GetMapping("/input")
に置き換えることができる。
他にも RequestMapping を置き換えられる、以下のアノテーションが追加されている。
DeleteMapping
PatchMapping
PutMapping
今日はここまで。
Spring 関連記事へのリンク集はこちら。
www.shookuro.com
Spring MVC の基本について書いた記事はこちら。
www.shookuro.com
Spring徹底入門 Spring FrameworkによるJavaアプリケーション開発
- 作者:株式会社NTTデータ
- 出版社/メーカー: 翔泳社
- 発売日: 2016/07/21
- メディア: 大型本
- 作者:掌田津耶乃
- 出版社/メーカー: 秀和システム
- 発売日: 2015/05/21
- メディア: Kindle版