我的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 aplay.api.mvc.Call
instead of aplay.api.mvc.Action
.
所以这应该像LoginPage
一样工作是直接在您的应用程序中的 Controller 。
Redirect(routes.LoginPage.login);
罢工><罢工>罢工>
关于http - Play Framework - 如何重定向到插件 Controller 生成的页面? [安全社交],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17412745/