コンピュータクワガタ

かっぱのかっぱによるコンピュータ関連のサイトです

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