4

1 つのアクションで他のアクションを呼び出すと、それ自体のテンプレートも表示されます。Play 1.1 RCRedirect("...url")では動作しませんが、助けてくれる人はいますか?

4

4 に答える 4

12

上記の回答に追加するために、外部URLにリダイレクトする方法は次のとおりです。

public static void index(){redirect( "http://geeks.aretotally.in"); }

于 2011-05-23T01:21:23.197 に答える
6

これらの回答のいずれも、これを行うための一般的/再利用可能な方法を提供していないため、ここに私のコードがあります。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);
    }
}
于 2013-07-17T16:18:48.430 に答える
6

リダイレクトするには、アクションを呼び出すだけです。ドキュメントの例から:

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 にアクセスしたかのようになります。

于 2011-04-30T00:09:22.497 に答える
3

play フレームワークでは、アクションを呼び出すと、デフォルトでそのアクションに関連付けられたテンプレートがレンダリングされます。

たとえば、Application という名前のコントローラー

public static void index()

レンダリングします

app/views/Application/index.html

別のビューをレンダリングするには、render メソッドの最初のパラメーターとしてテンプレートを指定できます。

そう、

renderTemplate("Application/myOtherTemplate.html");

リダイレクトは、アプリケーションの外部の URL にリダイレクトする場合にのみ使用してください。

于 2010-11-26T10:35:41.677 に答える