【问题标题】:Access asset file based on current context in play framework 2.3play framework 2.3 中基于当前上下文访问asset文件
【发布时间】:2014-11-14 23:18:48
【问题描述】:

如何根据用户权限返回资产文件。 表示我想根据用户访问级别显示页面。

使用此方法,当前上下文不可用:

public play.api.mvc.Action<AnyContent> index() {
    try {
        if (securityService.getCurrentSession(Controller.ctx()) == null) {
            return Assets.at("/public", "/main.html", false);
        }else
            return Assets.at("/public", "/index/index.html", false);
    } catch (Exception e) {
        return Assets.at("/public", "/index/index.html", false);
    }
}

由于这个错误:

There is no HTTP Context available from here.

并使用此方法将资产作为下载文件返回:

public Result index() {
    try {
        if (securityService.getCurrentSession(Controller.ctx()) == null) {
            return Results.ok(Play.application().getFile("/public/index/index.html"));
        }else
            return Results.ok(Play.application().getFile("/public/main.html"));
    } catch (Exception e) {
        return Results.ok(Play.application().getFile("/public/index/index.html"));
    }
}

如何根据用户权限显示索引页面?

【问题讨论】:

    标签: java playframework playframework-2.3


    【解决方案1】:

    您可以使用ok(java.io.File, boolean) 而不是ok(java.io.File) 方法,其中第二个参数指定结果是内联或附件。

    像这样:

    public Result index() {
        try {
            if (securityService.getCurrentSession(Controller.ctx()) == null) {
                return Results.ok(Play.application().getFile("/public/index/index.html"), true);
            } else
                return Results.ok(Play.application().getFile("/public/main.html"), true);
        } catch (Exception e) {
            return Results.ok(Play.application().getFile("/public/index/index.html"), true);
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2014-09-28
      • 2015-04-02
      • 2023-03-30
      • 2015-05-13
      • 1970-01-01
      • 2021-02-25
      • 2013-08-02
      • 1970-01-01
      相关资源
      最近更新 更多