当我在一个动作中调用其他动作时,它也会在Play 1.1 RC中显示自己的模板
当我Redirect("...url")
但它不起作用时,是否有人可以帮助我?
答案 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时才应该使用重定向。