2014-02-14 5 views
4

У меня возникли проблемы с Grails перенаправления пространств имен: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

Решение, которое работало для меня было использовать named URL Mapping:

1) обеспечивают имя отображения в вашем UrlMappings.groovy:

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

2) ссылку на это отображение в вашем переадресации вызова

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> 
Смежные вопросы