Grails命名空间问题

Grails命名空间问题,grails,Grails,我在grails重定向到名称空间时遇到问题: 我在LoginController中有此重定向: redirect(namespace:'auth',controller:'login',action: "login") 这在我的URL映射中定义: "/auth/$action?/$id?" { controller = 'login' namespace = 'auth' } 但是重定向不起作用,它重定向:login/login而不是auth/login 此外,登录表单是通过登录/身份

我在grails重定向到名称空间时遇到问题:

我在LoginController中有此重定向:

redirect(namespace:'auth',controller:'login',action: "login")
这在我的URL映射中定义:

"/auth/$action?/$id?" {
 controller = 'login'
 namespace = 'auth'
 }
但是重定向不起作用,它重定向:login/login而不是auth/login

此外,登录表单是通过登录/身份验证而不是身份验证/身份验证的操作生成的

有什么想法吗

这是Grails2.3.4 btw


谢谢。

一个对我有效的解决方案是使用:

1) 在UrlMappings.groovy中提供映射名称:

name specialLoginMapping: "/auth/$action?/$id?" {
 controller = 'login'
 namespace = 'auth'
}
"/auth/$controller/$action?/$id?" {
   namespace = 'auth'
}
2) 在重定向调用中引用此映射

redirect(mapping: 'specialLoginMapping', action: 'login')

Grails应该从上面的UrlMappings条目中获取控制器/名称空间

在UrlMappings中使用以下代码进行尝试。groovy:

name specialLoginMapping: "/auth/$action?/$id?" {
 controller = 'login'
 namespace = 'auth'
}
"/auth/$controller/$action?/$id?" {
   namespace = 'auth'
}
要在表单操作中获取控制器的正确路径,请在url中使用命名空间:

<g:form url="[action:'save', namespace:'auth']">
.......
</g:form>

.......