16

我想从 Play 2 Java 中的控制器获取绝对 URL。我为 Scala 找到了完全相同的问题,但我无法让它在 Java 中工作。

public class MyController extends Controller {
    public static Result myMethod() {
        return ok();
    }

    public static Result test() {
        Logger.info(routes.MyController.myMethod().url); // Doesn't work !
        Logger.info(routes.MyController.myMethod().absoluteURL()); // Doesn't work !
        Logger.info(routes.MyController.myMethod().absoluteURL(true)); // Doesn't work !
        return ok();
    }
}

谢谢你的帮助 !

4

2 回答 2

26

将请求添加到absoluteURL()

routes.MyController.myMethod().absoluteURL(request());
于 2012-06-22T15:31:52.913 回答
2

我不确定这是否适用于 2.0,但由于您使用的是 Java,它可能会成功。我在 1.2.4 中使用它。

Router.getFullUrl("Controller.action")

祝你好运 !

编辑:我导入 play.mvc.Router 所以如果这在 2.0 中不存在,你可能会发现类似的东西。

另外,这是 play 的 2.0 关于路由的文档,检查反向路由,也许会有所帮助。

http://www.playframework.org/documentation/2.0.1/JavaRouting

于 2012-06-22T15:06:39.547 回答