2011-11-15 2 views
0

에서 Grails의 개체를 반복 :Grails는 내가 일반적으로 다음과 같이 테이블에 무언가의 목록을 표시, 컨트롤러

<g:each var="it" in="${temp}"> 
${it.someThing} 
${it.someThingSomething} 
<g:each> 

이것이 최선의 방법인지는 잘 모르겠습니다. 이 똑같은 작업을 수행 할 수 있습니까?하지만 모든 객체를 호출 한 다음 gsp에서 반복 실행하지 않고 모든 컨트롤러 측에서이 작업을 수행하십시오. 즉, 모든 객체를 뷰에 전달하는 대신 단일 객체를 전달합니다.

+0

이 가능하지 않는 것)보다는'더 당신은이 같은 전망을 가질 수 요청 당 한 번. – ig0774

답변

2

이것이 최선의 방법인지는 잘 모르겠습니다. 이 똑같은 작업을 수행 할 수 있습니까?하지만 모든 객체를 호출 한 다음 gsp에서 반복 실행하지 않고 모든 컨트롤러 측에서이 작업을 수행하십시오. 모든 객체를 뷰에 전달하는 대신 단일 객체를 전달하는 것

위의 코드 대신 제안 사항을 이해할 수 없다고 생각합니다. 그러나 위의 AFAIK 코드는 GSP에 항목 목록을 표시하는 가장 일반적인 방법이므로 특정 문제를 일으키지 않는 한 대안을 찾지 않아도됩니다.

+0

감사합니다. 대단히 감사합니다. 때로는 어떤 일을하기 위해 따라야 할 최선의 접근 방식에 대한 의구심을 가지고 있으며, 그것을 작동 시키면 더 간단하고 나은 방법이 될 수 있습니다. 나는 항상 배우고 있습니다 : p 더 좋은 방법이 없다면 받아 들일 것입니다. 답 : p – recoInrelax

0

매우 구체적인 이유가 아니라면 좋은 아이디어라고 생각하지 않습니다. 예를 들어 쿼리에서 두 개의 개체가 항상 필요하고 다르게 표시해야하는 경우 [object1: temp2[0], object2: temp2[1]]과 같은 모델을 원할 수 있습니다.

복잡한 반복을 피하기 위해 뷰를 구성하는 좋은 방법은 템플릿을 사용하는 것입니다.

<g:each var="it" in="${temp}"> 
    <g:render template="someThing" model="[someThingInstance: it]"/> 
</g:each> 

그리고 하나의 오브젝트 표시하는 템플릿 _someThing.gsp : 컨트롤러 (`전화를 렌더링 할 수

<div>${someThingInstance.field1}</div> 
<div>${someThingInstance.field2}</div> 
관련 문제