Sharable

システム&ウェブのシェアラブル

Lv.3 Reverse routingでURL誤字脱字がなくなる。 [play framework2.0] [java]

2012年3月24日

Reverse routingってすごい強そうな名前だけど、大して難しいことない。
まぁ便利。

クラスからURLを叩く安全な方法のこと

たとえばconf/routes

GET   /clients/id    controllers.Clients.show(id)

みたいに定義したとして、
それをjavaのクラス内から呼びたいときは通常。

public static Result index() {
    return redirect("http://example.com/clients/123"); 
}

みたいに文字列でリダイレクトをかける。

ただ、これだと誤字脱字があって余計な手間がかかることがありますよね。
たとえばclientsの最後のsが抜けてたり。
ソイラテは何度もこういうミスをします。

そこでplayフレームワーク2.0では、件のReverse routingという機構を
用意してくれたんです。

これを使うと先ほどと同じことを、

// /clients/123へリダイレクト
public static Result index() {
    return redirect(controllers.routes.Clients.show("123")); 
}

Actionメソッドのフルパスを指定すれば、conf/routesに記述してあるURLを
逆引きしてくれて、予期した通りのURLへリダイレクトしてくれます。

便利かつ安全イコール実用的。

アセスメント
  • javaクラス内から安全にURLを叩く方法が分かる

こんな感じでLv.3 playフレームワーク各駅停車の旅は結びます。

今回も前回と同様、
http://www.playframework.org/documentation/2.0/JavaRouting
を参照しました。ページの下の方。

このエントリーをはてなブックマークに追加