我在将 grails 重定向到命名空间时遇到了问题:
我在 LoginController 中有这个重定向:
redirect(namespace:'auth',controller:'login',action: "login")
这在我的 URL 映射中定义:
"/auth/$action?/$id?" {
controller = 'login'
namespace = 'auth'
}
但是重定向不起作用,它重定向:登录/登录而不是身份验证/登录。
此外,登录表单是通过登录/身份验证而不是身份验证/身份验证的操作生成的。
有任何想法吗?
这是 Grails 2.3.4 顺便说一句。
谢谢。
最佳答案
对我有用的解决方案是使用 named URL Mapping :
1) 在 UrlMappings.groovy 中提供映射名称:
name specialLoginMapping: "/auth/$action?/$id?" {
controller = 'login'
namespace = 'auth'
}
2) 在重定向调用中引用此映射
redirect(mapping: 'specialLoginMapping', action: 'login')
Grails 应该从上面的 UrlMappings 条目中获取 Controller /命名空间
关于Grails 命名空间问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21790834/