gpt4 book ai didi

java - 将请求重定向到 Controller 中的特定操作 public F.Promise call(Http.Context ctx){}

转载 作者:可可西里 更新时间:2023-11-01 16:37:40 27 4
gpt4 key购买 nike

我正在使用 play 2.2.x 并且我正在做一个项目。我想在我的 AdminController 类中定义的某些操作(方法)之前检查管理员是否在 session 中。所以如果用户没有登录并尝试输入浏览器中的 adminpage url 他应该被重定向到一个特定的页面,比如 login.scala.html。

我的代码 ( Source )

 public F.Promise<SimpleResult> call(Http.Context ctx) throws Throwable {

if (check if user is in session) {

return delegate.call(ctx);
} else {

return redirect(routes.AdminController.login());
}
}

但是上面的代码给我一个不兼容的类型编译错误。

那么如何重定向 url 呢?

如有任何帮助,我们将不胜感激。

最佳答案

redirect 调用不返回 F.Promise,因此类型错误。您可以使用 pure 包装重定向调用:

public F.Promise<SimpleResult> call(Http.Context ctx) throws Throwable {
if (/* your condition */) {
return delegate.call(ctx);
} else {
return F.Promise.pure(redirect(routes.AdminController.login()));
}
}

关于java - 将请求重定向到 Controller 中的特定操作 public F.Promise<SimpleResult> call(Http.Context ctx){},我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27819768/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com