![Lv.3 Reverse routingでURL誤字脱字がなくなる。 [play framework2.0] [java]](https://soylatte.jp/wp-content/themes/soy-magazine/assets/images/no-thumbnail.png)
Reverse routingってすごい強そうな名前だけど、大して難しいことない。
まぁ便利。
クラスからURLを叩く安全な方法のこと
たとえばconf/routesで
[java toolbar=”false”]
GET /clients/id controllers.Clients.show(id)
[/java]
GET /clients/id controllers.Clients.show(id)
[/java]
みたいに定義したとして、
それをjavaのクラス内から呼びたいときは通常。
[java toolbar=”false”]
public static Result index() {
return redirect(“http://example.com/clients/123”);
}
[/java]
public static Result index() {
return redirect(“http://example.com/clients/123”);
}
[/java]
みたいに文字列でリダイレクトをかける。
ただ、これだと誤字脱字があって余計な手間がかかることがありますよね。
たとえばclientsの最後のsが抜けてたり。
ソイラテは何度もこういうミスをします。
そこでplayフレームワーク2.0では、件のReverse routingという機構を
用意してくれたんです。
これを使うと先ほどと同じことを、
[java toolbar=”false”]
// /clients/123へリダイレクト
public static Result index() {
return redirect(controllers.routes.Clients.show(“123”));
}
[/java]
// /clients/123へリダイレクト
public static Result index() {
return redirect(controllers.routes.Clients.show(“123”));
}
[/java]
Actionメソッドのフルパスを指定すれば、conf/routesに記述してあるURLを
逆引きしてくれて、予期した通りのURLへリダイレクトしてくれます。
便利かつ安全イコール実用的。
アセスメント
- javaクラス内から安全にURLを叩く方法が分かる
こんな感じでLv.3 playフレームワーク各駅停車の旅は結びます。
今回も前回と同様、
http://www.playframework.org/documentation/2.0/JavaRouting
を参照しました。ページの下の方。