2011-07-03 4 views
2

나는 각각의 일을 할 수 없다. 나는 아무것도 반복하지 않으려 고 노력하고 있지만 절대 HTML은 생성하지 않습니다.그레이스 g : 각 문제

의 index.gsp

<g:each var="i" in="${userList}" controller="user"> 
      <li>Item ${i.name}</li> 
</g:each> 

userController.groovy

다음
class UserController { 
    ...   
     def userList = { 

      User.list() 

     } 
     ... 
} 

나는 User.groovy 사용자 수로 가득했다 .. 난 = 년에 작성해야 하죠 무엇

User.groovy로 선언 된 사용자를 예로 들어 반복하려면 "$ {.....}"을 (를) 사용 하시겠습니까? 나는 시도 : 사용자, 사용자, User.list() ...

감사

편집 :

것은 이제 난 내 UserCotroller에서

def findOne { 

[users : User.findAllByNameLike("%Petr%") 

} 

있다고 가정 해 봅시다. 어떻게

은 내가 g을 사용하여 각 아무것도하지 않습니다 그것은

<g:each var="user" in="${findOne}"> 

때문에위한 ..

답변

6

당신의 예에서. userList는 폐쇄, 그래서는 액션 이름, 그래서 난 당신이 GSP에 렌더링 할 수있는 컨트롤러 액션에서 뭔가를 반환 할 경우 http://localhost:8080/appname/user/userList

을 액세스하는 있으리라 믿고있어, 그것은 "는 Map에 있어야한다 모델". 지도의 각 값은지도 키를 이름으로 사용하여 GSP에 표시됩니다. 그래서 GSP에 해당하는 컨트롤러 액션이

def userList = { 
    [users: User.list()] 
} 

것 한 다음 이름은 중요하지 않습니다

<g:each var="user" in="${users}"> 
    <li>Item ${user.name}</li> 
</g:each> 

으로 반복 할 수 - 그냥 같이 모델 맵에서 동일해야 GSP.

+0

내 index.gsp는 http : // localhost : 8080/GrailsAppTest /이며 내 앱이 어떻게 시작되는지를 보여줍니다. 나는 색인 페이지의 목록에 사용자를 나열하려고 시도하고 있습니다. 나는지도를 이해 : 모델 것은하지만 그것은 단지 거기에서 그것을 액세스하지 않을 것 같습니다. –

+0

그리고 왜 이렇게 작동하지 않을까요? in "= {User.list()}"? ( –

+0

후자가 작동합니다.'grails generate-all User'를 시도하고 기본 스캐 폴딩이 작동하는 방법을 확인하십시오. –