我遇到grails重定向到命名空间的问题:
我在LoginController中有这个重定向:
redirect(namespace:'auth',controller:'login',action: "login")
并在我的URL映射中定义:
"/auth/$action?/$id?" {
controller = 'login'
namespace = 'auth'
}
然而,重定向不起作用,它重定向:login / login而不是auth / login。
此外,登录表单是使用login / authenticate操作生成的,而不是auth / authenticate。
有什么想法吗?
这是Grails 2.3.4 btw。
感谢。
答案 0 :(得分:0)
对我有用的解决方案是使用named URL Mapping:
1)在UrlMappings.groovy中提供映射名称:
name specialLoginMapping: "/auth/$action?/$id?" {
controller = 'login'
namespace = 'auth'
}
2)在重定向呼叫中引用此映射
redirect(mapping: 'specialLoginMapping', action: 'login')
Grails应该从上面的UrlMappings条目中获取控制器/命名空间
答案 1 :(得分:0)
在UrlMappings.groovy中尝试使用这些代码:
"/auth/$controller/$action?/$id?" {
namespace = 'auth'
}
要在表单操作中获取控制器的正确路径,请在url中使用namespace:
<g:form url="[action:'save', namespace:'auth']">
.......
</g:form>