有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

playframework Play 2.2 java一个控制器可以调用另一个控制器吗?

是否可以通过另一个控制器的动作调用游戏控制器?我正在用java实现一个控制器,如下所示:

public class SubdomainHandler extends Controller {
    public static Result redirect(String path, String file) {
        String newPath = ... // do tricky things with Http.Context.current().request().host() .
        Action wrappedControllerAction = Assets.at(newPath, file);

        return wrappedControllerAction.render(); // <- Nope, no such API.
    }
}

是否有可能获得返回结果的操作?我假设在这里进行同步调用是可以的,但返回承诺似乎是正确的做法

干杯, j-


共 (2) 个答案

  1. # 1 楼答案

    在play2中没有像play1中那样的魔力,控制器方法只是方法,所以你可以在控制器之间调用它们,你只需要在最后正确地渲染

    我不知道你想做什么,但如果你想在多个动作之间有一个共同的行为,ActionBuilder或过滤器可能更适合你的用例

  2. # 2 楼答案

    在scala中,解决方案很简单:

    object SubdomainHandler extends Controller {
    
      def redirect(path: String, file: String) = controllers.Assets.at(messWithPath(path), messWithFile(file))
    
    }
    

    这为我的游戏用例解决了问题

    有没有人愿意尝试一下java的等价物呢