2017-02-17 5 views
1

他のアクションメソッドからアクションメソッドを直接呼び出すことができたので、逆ルーティングがプレイフレームワークに追加されたのはなぜですか?プレイフレームワークで逆ルーティングが追加されたのはなぜですか?

+0

まだ試したことはありますか? –

+0

アクションメソッドから他のアクションメソッドを呼び出す場合は、逆方向ルーティングを使用して対応するURLにリダイレクトする必要がありますが、単純なJavaコードのようにそのメソッドを直接呼び出すことができます – Partish

答えて

5

逆ルーティングは、URLエンドポイントのサポートを簡略化します。

は、我々はルートファイル例えば

POST /login/action   controllers.LoginController.login 

があると、あなたは、ログインページを作成し、フォーム上のアクションを配置する必要があります。

<form action="/login/action" method="post"> 
... 
</form> 

リバースルーティングを使用すると、ここに置くことができちょうどメソッドコール

<form action="@routes.LoginController.login" method="post"> 
... 
</form> 

2番目のケースでは、あなたがchanならテンプレートファイルを編集する必要はありませんroutesファイル内のログインURL。

もう1つの事柄 - 最初のケースでは、テンプレートのURLを変更するのを忘れて、ビルド時に厄介な問題に終わりますが、404で終わるリンクがあります。

+0

私はもう1つ質問します。 "リバースルーティングの代わりにリダイレクトを使用するのと同じですか?結局、すべてが両方のケースの呼び出しですから" – Partish

+0

リダイレクトとリバースルーティングが異なります。リダイレクト: 'Redirect("/hello/bob ")'。リバースルーティング: 'routes.Application.hello(" Bob ")'。リバースルーティングによるリダイレクト: 'Redirect(routes.Application.hello(" Bob "))' –

関連する問題