在Play 1.2.x中无需重定向的代理操作

时间:2014-06-26 09:07:59

标签: java redirect playframework

如果Play控制器MyController有一个动作myAction,是否可以在不触发重定向的情况下调用另一个动作?假设我有另一个控制器:

public class MyController2 extends Controller {
    public static void myAction2() throws Exception {
        MyController.myAction(); //this will cause a redirect.
    }
}

是否可以在不触发重定向的情况下调用myAction请注意,我使用的是Play 1.2.x而不是Play 2.x。

1 个答案:

答案 0 :(得分:0)

您可以致电myAction而不是重定向。只需将myAction的访问级别更改为 public以外的任何。但是,您将无法再直接转到myAction

如果您仍然需要myAction可以在其中使用路由,那么我建议将任何常用功能移动到单独的方法/类中,然后从myAction2调用该方法myAction,如此:

public class Application extends Controller {

    public static void myAction() {
        commonActionStuff("myAction");
    }

    public static void myAction2() {
        commonActionStuff("myAction2");
    }

    protected static void commonActionStuff(String whoCalledMe) {

        // your common functionality implemented here

        renderText(whoCalledMe);
    }
}