2012-04-11 3 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

+0

에서 만든 변수를 컨트롤러에서 사용할 수 있습니다 ('request.getAttribute ('user')'). btw, 나는 그것의 어떤 이득도 보지 않는다, 당신은 이미 콘트롤러에서'springSecurityService.currentUser'를 사용할 수있다. –

+0

고마워, 코드를 사용하는 장소가 많다. 그래서 나는 filter.and에 넣어 생각하고 다른 컨트롤러에서 코드의 많은 다른 중복도 있습니다. 필터를 사용하거나 더 나은 접근 방식을 사용하면 괜찮습니까? 나에게 제안 할 수 있습니까? 나는 최근에 grails로 시작했습니다. – nandini

1

내가 사용하는 것이

params.user = user 
,210

당신은

params.user 

로하고 GSP에 CONTROLER에 액세스 할 수 있습니다

${params.user} 

매우 간결