2014-02-14 69 views
4
我在使用Grails重定向到命名空間的問題

Grails的命名空間的問題

我有這樣的重定向在的LoginController:

redirect(namespace:'auth',controller:'login',action: "login") 

,在我的URL映射這個定義:

"/auth/$action?/$id?" { 
controller = 'login' 
namespace = 'auth' 
} 

但是重定向不起作用,它重定向:登錄/登錄而不是auth/login。

此外,登錄表單是通過login/authenticate動作而不是auth/authenticate生成的。

任何想法?

這是Grails 2.3.4 btw。

謝謝。

回答

0

已經爲我工作一個解決方案是使用一個named URL Mapping:在您的重定向呼叫

name specialLoginMapping: "/auth/$action?/$id?" { 
controller = 'login' 
namespace = 'auth' 
} 

2)引用該映射:

1)在你的UrlMappings.groovy提供映射名稱

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

Grails的應採取控制器/命名空間從上述UrlMappings條目

0

在您UrlMappings.groovy這些代碼試試:

"/auth/$controller/$action?/$id?" { 
    namespace = 'auth' 
} 

要獲得URL的形式操作的控制器,使用命名空間的正確的路徑:

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