如果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。
答案 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);
}
}