2010-11-26 62 views
3

當我在一個動作中調用其他動作時,它也顯示自己的模板,在播放1.1 RC 和當我Redirect("...url")但它不起作用時,有沒有人可以幫助我?如何在Play框架中重定向?

+0

顯示你的代碼,闡明你的答案,措辭非常糟糕,現在。 – Jakub 2010-11-26 07:32:25

回答

3

在播放框架中,當您調用動作時,默認情況下它將呈現與該動作關聯的模板。

例如,一個位指示名爲Application

public static void index() 

將呈現

app/views/Application/index.html 

爲了使它呈現了不同的看法,那麼你可以指定模板作爲渲染方法的第一個參數。

所以,

renderTemplate("Application/myOtherTemplate.html"); 

重定向應該如果你是你的應用程序之外重定向到URL只有真正使用。

+0

高清註銷()= { 寄存器 } DEF註冊()= { logger.debug( 「呼叫」) 模板 } – chenwenfeng 2010-11-29 02:42:05

+0

我想打電話給在註銷註冊,但它不工作 – chenwenfeng 2010-11-29 02:42:54

6

要重定向,您只需調用該操作即可。從documentation的例子:

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); 
} 

在編輯動作結束,呼叫顯示(...)將導致客戶端瀏覽器重定向的,如果他們擊中了同樣的網址路線展示方法。

12

我想補充到上述問題的答案,這裏是你如何重定向到一個外部URL:

公共靜態無效指數(){ 重定向(「http://geeks.aretotally.in」); }

4

由於這些答案都沒有提供一個通用/可重用的方法來做到這一點,這裏是我的代碼。這使您可以在conf/routes文件中創建任意數量的重定向,而無需爲每個重定向創建一個控制器。

是的,這是微不足道的,但也許它對某人有用。

的conf /路線:

GET  /admin  Application.redirect(url:'/admin/index.html') 

的app/controllers/Application.java:

public class Application extends Controller { 

    public static void redirect(String url) { 
     redirect(url, true); 
    } 
} 
相關問題