2014-12-22 5 views
1

Я новичок в Grails, я использую Grails версии 2.3.4, в моем приложении у меня есть 2 контроллераредирект в контроллере Grails

AppUser

и

ManageLicences

, в AppUsers существует метод с именем aut ч и ниже его код:

def auth() 
{ 
    if (!params.username.empty) 
    { 
    redirect (controller: "manageLicences" , action:"checkLicense") 
    } 
} 

В checkLicense в контроллере ManageLicense я делаю некоторую переадресацию в зависимости от некоторых условий

def checkLicense { 
if (someCondition) { 
    redirect (controller:'manageLicences' , action:'list') 
     } 
    else { 
     redirect (controller:'appUsers' , action:'login') 

     } 
} 

, проблема заключается в том, что, когда мое приложение достигает

redirect (controller: "manageLicences" , action:"checkLicense") 

в контроллере AppUsers, скорее перейдя на перенаправление, что в checkLicense URL в браузере будет

http://localhost:8080/MyApplication/manageLicences/checkLicense 

и пустая страница, любые советы?

+0

любые советы или рекомендации? – SShehab

+1

Убедитесь, что у вас есть оператор 'return' после каждого вызова' redirect'. – sebnukem

+0

Добавьте некоторые записи, прежде, и после «if», чтобы увидеть, что происходит. –

ответ

1

Убедитесь, что вы не выполняете перенаправление с контроллера, расположенного по имени, на контроллер, который не находится в пространстве имен.

В соответствии с Grails Documentation:

Перенаправлением текущего действия к другому действию, при необходимости передачи параметров и/или ошибки. При выдаче переадресации с контроллера с пространством имен пространство имен для целевого контроллера подразумевается как контроллер, инициирующий перенаправление. Чтобы переадресовать с контроллера с пространством имен на контроллер, который не находится в пространстве имен, пространство имен должно быть явно указано со значением null, как показано ниже.

class SomeController { 
    static namespace = 'someNamespace' 
    def index() { 
     // issue a redirect to PersonController which does not define a namespace 
     redirect action: 'list', controller: 'person', namespace: null 
    } 
}