Grails中,在表格中顯示的東西的清單,我通常做到以下幾點:Grails的迭代對象在控制器
我控制器
thingController {
def temp2 = something.findAllByXXX(yyy)
[temp : temp2]
}
在我看來,我有:我不知道這是不是最好的方法。是否有可能做到這一點完全相同的事情,但不是調用所有的對象,然後在gsp迭代他們,做到這一切所有的控制器端。意思是,不是將所有對象傳遞給視圖,而是傳遞單個對象。
Grails中,在表格中顯示的東西的清單,我通常做到以下幾點:Grails的迭代對象在控制器
我控制器
thingController {
def temp2 = something.findAllByXXX(yyy)
[temp : temp2]
}
在我看來,我有:我不知道這是不是最好的方法。是否有可能做到這一點完全相同的事情,但不是調用所有的對象,然後在gsp迭代他們,做到這一切所有的控制器端。意思是,不是將所有對象傳遞給視圖,而是傳遞單個對象。
我不知道這是否是最好的方法。是否有可能做到這一點完全相同的事情,但不是調用所有的對象,然後在gsp迭代他們,做到這一切所有的控制器端。意思是,而不是將所有對象傳遞給視圖,傳遞單個對象
我不認爲我理解你的建議作爲上述代碼的替代方案。但是,AFAIK上面的代碼是在GSP中顯示項目列表的最常見方式,所以除非它導致您遇到特定問題,否則我不打算尋找替代方案。
好的,非常感謝。有時候,我懷疑要做某些事情的最好方法,並且不管怎麼樣,可以有更簡單更好的方法來做到這一點,而且我一直在學習:如果沒有更好的方法,我會接受答案:p – recoInrelax
這是可能的,但我不認爲這是一個好主意,除非它是出於一個非常具體的原因。例如,如果您始終希望查詢中有兩個對象,並且它們需要以不同的方式顯示,那麼您可能需要使用像[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>
似乎也不可能,因爲控制器不能調用'渲染()比'更多每次請求一次。 – ig0774