読者です 読者をやめる 読者になる 読者になる

Redirect.to()

T2でリダイレクトをする場合、Redirectクラスを使用します。

バージョン0.4のブランチから、このクラスには「to」「toOuterContext」「toOuterUrl」の3つのstaticメソッドが定義されました。
以前はto()のみでしたが、「あて先によりメソッド分けをしたほうが分かりやすい」という投票の結果、3つに分割されました。
(異なるコンテキストにリダイレクトする際、to()だけだと規約的な仕様が発生するためです)

to()・・・・同じコンテキストパス中のほかのURLにリダイレクトする場合
toOuterContext()・・・・異なるコンテキストパス中のほかのURLにリダイレクトする場合
toOuterUrl()・・・・外部のURL(http://www.yahoo.co.jpとか)にリダイレクトする場合

to()の場合、引数に渡すパスにはコンテキストパスは不要です。
toOuterContext()の場合は、リダイレクトしたいコンテキストパス部分からパスを書きます。
いずれも"/"から始まるパスを記述することが推奨されますが、"/"がついていない場合でも、T2内部で補完されます。
ただし、ログにメッセージが出力されます。


toOuterUrl()は、プロトコル部分(httpとか)から始まるURLを引数で渡します。


すべてのリダイレクトパスには、"?param=value"形式のリクエストパラメータが付与できます。


Redirectに関しては、この3つを押さえておけば安心です。