2012-04-11 68 views
0
def filters = { 
    forUser(controller:'user', action:'*') { 
     before = { 
      user=springSecurityService.getCurrentUser() 
      log.info("came to filter and the user is" + user) 
     } 
     after = { 

     } 
     afterView = { 

     } 
    } 
} 

我想在用戶控制器中訪問此用戶變量。 是否有可能沒有建立會話變量?我想訪問在過濾器中聲明的變量

回答

1

可以使用請求範圍的變量:

request.setAttribute('user', user) 

,並用它在GSP爲:

${user} 

或在控制器:

request['user'] 
//or 
request.user 
+0

我想在控制器的用戶使用它。我在過濾器 – nandini 2012-04-11 07:41:30

+0

中所做的變量沒問題,您可以在控制器中使用它('request.getAttribute('user')')。順便說一句,我沒有看到它的好處,你可以在控制器中使用'springSecurityService.currentUser' – 2012-04-11 07:44:58

+0

謝謝,有很多地方使用代碼。所以我想把它放在過濾器中。除此之外,其他控制器中還有很多其他重複的代碼。所以,如果我使用過濾器,或者如果有更好的方法,可以提議我嗎?我最近開始使用grails – nandini 2012-04-11 07:50:34

1

我會使用

params.user = user 

那麼您可以在您的CONTROLER訪問它

params.user 

,並在你的GSP:

${params.user} 

非常簡潔