Redirect 如何在Play框架中重定向?

Redirect 如何在Play框架中重定向?,redirect,playframework,Redirect,Playframework,当我在一个动作中调用其他动作时,它也会在Play 1.1 RC中显示自己的模板 当我重定向(“…url”)但它不起作用时,是否有人可以帮助我?在播放框架中,当您调用某个动作时,默认情况下,它会呈现与该动作关联的模板 例如,一个名为Application的控件 public static void index() 将呈现 app/views/Application/index.html 若要使其渲染不同的视图,则可以将模板指定为渲染方法中的第一个参数 所以 只有在重定向到应用程序外部的URL时

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

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

例如,一个名为Application的控件

public static void index()
将呈现

app/views/Application/index.html
若要使其渲染不同的视图,则可以将模板指定为渲染方法中的第一个参数

所以


只有在重定向到应用程序外部的URL时,才应该真正使用重定向

要重定向,只需调用操作。根据中的示例:


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

为了补充上述答案,以下是重定向到外部URL的方法:

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

因为这些答案都没有提供一个通用的/可重用的方法来实现这一点,下面是我的代码。这允许您在
conf/routes
文件中创建任意数量的重定向,而无需为每个重定向创建控制器

是的,这很琐碎,但也许对某人有用

形态/路线:

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

显示您的代码,澄清您的答案,现在措辞非常糟糕。def logout()={register}def register()={logger.debug(“call”)Template}哦。。这是一个很大的魔法。这是怎么回事?还有没有其他的例子可以让Play做Java源代码根本没有指出的事情呢?Play!使用字节码增强器在幕后修改编译后的代码。除了使用它来处理重定向,它还使用它在数据库实体中提供属性支持。例如,您可以调用“foo.bar=5;”,它在幕后映射到“foo.setBar(5)”;“return foo.bar;”映射到“foo.getBar();”。
GET     /admin     Application.redirect(url:'/admin/index.html')  
public class Application extends Controller {

    public static void redirect(String url) {
        redirect(url, true);
    }
}