4

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

4

4 回答 4

12

只是为了添加到上面的答案,这里是您重定向到外部 url 的方式:

公共静态无效索引(){重定向(“http://geeks.aretotally.in”);}

于 2011-05-23T01:21:23.197 回答
6

由于这些答案都没有提供通用/可重用的方法来执行此操作,因此这是我的代码。这允许您在conf/routes文件中创建任意数量的重定向,而无需为每个重定向创建控制器。

是的,这是微不足道的,但也许它对某人有用。

配置/路由:

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

在播放框架中,当您调用一个动作时,默认情况下它会呈现与该动作关联的模板。

例如,一个名为 Application 的控制器

public static void index()

将渲染

app/views/Application/index.html

为了让它渲染一个不同的视图,那么你可以在 render 方法中将模板指定为第一个参数。

所以,

renderTemplate("Application/myOtherTemplate.html");

仅当您要重定向到应用程序之外的 URL 时,才应真正使用重定向。

于 2010-11-26T10:35:41.677 回答