Spring MVC 4.0 No. 004 URLの一部をパラメータとして受け取る(複数パラメータ)
URLをパラメータとする場合、そのパラメータは1つでなくても構いません。複数のパラメータを受け取ることができますし、パラメータとパラメータの間にURLの一部が混ざっていても問題ありません。
具体的なサンプルは以下のとおりです。
@RequestMapping(value = "/pathVar3/{foo}/{bar}", method = RequestMethod.GET) public String pathVar3(@PathVariable String foo, @PathVariable String bar) { return "req/pathVar3"; } @RequestMapping(value = "/pathVar4/{bar1}/{foo1}", method = RequestMethod.GET) public String pathVar4(@PathVariable("bar1") String bar, @PathVariable("foo1") String foo) { return "req/pathVar3"; } @RequestMapping(value = "/pathVar5/{foo}/param/{bar}", method = RequestMethod.GET) public String pathVar5(@PathVariable String foo, @PathVariable String bar) { return "req/pathVar3"; }
2つ目のpathVar4メソッドではパラメータの順番と受け取るメソッドの引数の順番を変えています。3つ目のpathVar5メソッドでは、fooパラメータとbarパラメータの間にリテラルのパスを含んでいます。
このように、柔軟にパラメータの設定ができます。
最後に表示用のpathVar3.jspは以下になります。
<%@page contentType="text/html; charset=utf-8" %><%-- --%><!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>サンプル</title> </head> <body> fooの値は <c:out value="${foo}" /><br> barの値は <c:out value="${bar}" /><br> foo1の値は <c:out value="${foo1}" /><br> bar1の値は <c:out value="${bar1}" /> </body> </html>
ソースは https://github.com/kuwalab/spring-mvc40 にあります。タグ004が今回のサンプルです。
まとめ http://kuwalab.hatenablog.jp/entry/spring
最初 http://kuwalab.hatenablog.jp/entry/spring_mvc/001
前回 http://kuwalab.hatenablog.jp/entry/spring_mvc/003
次回 http://kuwalab.hatenablog.jp/entry/spring_mvc/005