1 つのアクションで他のアクションを呼び出すと、それ自体のテンプレートも表示されます。Play 1.1 RCRedirect("...url")
では動作しませんが、助けてくれる人はいますか?
4 に答える
上記の回答に追加するために、外部URLにリダイレクトする方法は次のとおりです。
public static void index(){redirect( "http://geeks.aretotally.in"); }
これらの回答のいずれも、これを行うための一般的/再利用可能な方法を提供していないため、ここに私のコードがあります。conf/routes
これにより、それぞれのコントローラーを作成することなく、ファイル 内に任意の数のリダイレクトを作成できます。
はい、これは些細なことですが、おそらく誰かの役に立ちます。
conf/ルート:
GET /admin Application.redirect(url:'/admin/index.html')
アプリ/コントローラー/Application.java:
public class Application extends Controller {
public static void redirect(String url) {
redirect(url, true);
}
}
リダイレクトするには、アクションを呼び出すだけです。ドキュメントの例から:
public static void show(Long id) {
Article article = Article.findById(id);
render(article);
}
public static void edit(Long id, String title) {
Article article = Article.findById(id);
article.title = title;
article.save();
show(id);
}
編集アクションの最後に、show(...) の呼び出しにより、クライアントのブラウザーでリダイレクトが発生し、あたかも show メソッドにルーティングされる同じ URL にアクセスしたかのようになります。
play フレームワークでは、アクションを呼び出すと、デフォルトでそのアクションに関連付けられたテンプレートがレンダリングされます。
たとえば、Application という名前のコントローラー
public static void index()
レンダリングします
app/views/Application/index.html
別のビューをレンダリングするには、render メソッドの最初のパラメーターとしてテンプレートを指定できます。
そう、
renderTemplate("Application/myOtherTemplate.html");
リダイレクトは、アプリケーションの外部の URL にリダイレクトする場合にのみ使用してください。