如何在Play框架中重定向?

时间:2010-11-26 07:25:18

标签: redirect playframework

当我在一个动作中调用其他动作时,它也会在Play 1.1 RC中显示自己的模板 当我Redirect("...url")但它不起作用时,是否有人可以帮助我?

4 个答案:

答案 0 :(得分:12)

只是添加上面的答案,以下是您重定向到外部网址的方式:

public static void index(){     重定向( “http://geeks.aretotally.in”); }

答案 1 :(得分: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);
}

在编辑操作结束时,对show(...)的调用将导致客户端浏览器上的重定向,就像它们访问了路由到show方法的相同URL一样。

答案 2 :(得分:4)

由于这些答案都没有提供通用/可重用的方法来执行此操作,因此这是我的代码。这允许您在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);
    }
}

答案 3 :(得分:3)

在Play框架中,当您调用某个操作时,默认情况下会呈现与该操作关联的模板。

例如,名为Application

的控制器
public static void index()

将渲染

app/views/Application/index.html

要使其呈现不同的视图,您可以将模板指定为render方法中的第一个参数。

所以,

renderTemplate("Application/myOtherTemplate.html");

只有在重定向到应用程序之外的URL时才应该使用重定向。