播放动作组合委托分开呼叫

时间:2014-12-30 11:11:45

标签: java playframework-2.0 action

我正在尝试使用游戏中的动作组合来检查每个类方法中的登录用户,如果没有会话,我无法找到如何将用户重定向到登录屏幕,

这是我的verboseaction.java

public class VerboseAction extends play.mvc.Action.Simple {

    private static final play.Logger.ALogger log = play.Logger.of(VerboseAction.class);
    public F.Promise<Result> call(Http.Context ctx) throws Throwable {
        if(ctx.session().get("userEmail")!="" && ctx.session().get("userEmail")!=null)
            return redirect(routes.UserSession.index());
        else
            return delegate.call(ctx);
    }
}

我得到的错误是

error: incompatible types: Result cannot be converted to Promise<Result>

因为重定向是Result类型

我该如何解决这个问题,

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:3)

使用

return F.Promise.pure(redirect("/index"));

感谢this link