http - Play Framework - 如何重定向到插件 Controller 生成的页面? [安全社交]

标签 http scala playframework-2.0 url-routing securesocial

我的routes.conf文件中有这个:

# SecureSocial routes
# Login page
GET     /login                      securesocial.controllers.LoginPage.login

然后我将其保存在 Scala Controller 文件中

val index = SecuredAction { implicit request => 
    Redirect(routes.UserOps.watchlist)
    // how do I go straight to /login? >|
}

这样做会将我带到一个登录页面,其中有一个红色错误栏,显示“您必须登录才能查看此页面”。如果我访问“localhost:9000/login”,我会得到没有错误栏的登录页面。

通常我会执行Redirect(routes.SomeControllerObject.ActionMethodName),但在这种情况下,我需要访问的 Controller 位于插件中......

我觉得我在这里错过了一些相当大的东西......

最佳答案

更新:

要反向路由到插件 Controller 中的操作,您需要提供插件的正确完整路径 routes类。

Redirect(securesocial.controllers.routes.LoginPage.login)

原始答案

对于反向路由,我认为Controller在哪里并不重要。因为 Play 正在项目编译时构建它。来自文档:

For each controller used in the routes file, the router will generate a ‘reverse controller’ in the routes package, having the same action methods, with the same signature, but returning a play.api.mvc.Call instead of a play.api.mvc.Action.

所以这应该像LoginPage一样工作是直接在您的应用程序中的 Controller 。

Redirect(routes.LoginPage.login);

<罢工>

关于http - Play Framework - 如何重定向到插件 Controller 生成的页面? [安全社交],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17412745/

相关文章:

excel - Excel "save"文件如何通过 HTTP?

jquery - 检测 ajax 请求中的重定向?

scala - 在spark-shell中加载资源

scala - 在 Scala 中读写文本,编码正确吗?

postgresql - 使用 play-slick 时与 heroku postgres 的间歇性连接失败

scala - 玩改RUNNING_PID文件路径

python - Scapy 中的 HTTP GET 数据包嗅探器

asp.net - URL 中的波浪线

build - 列出 Play 框架中的依赖项和存储库

mongodb - ReactiveMongo:找不到 mongo-async-driver 配置