2011-02-03 51 views
0

我有一個很長的報告模板。它一次包含超過50個Grails域。但是,當我試圖加載到25域時,它說「無效的方法代碼長度」。我在谷歌搜索,它建議我拆分/查看模板。無效的方法很長的模板/視圖上的代碼長度

所以我做了以下修改:

之前,它是一個模板_template.gsp

但現在:_template.gsp和_template2.gsp

但裏面_template.gsp我把代碼,作爲

現在的問題它不會允許加載在控制器進入模板2載入的模型/對象....

在我的合作

ntroller:

Class AbcController{ 

def index = { 
def myParrent = MyParrent.get(1); 

def mode = [:]; 
model.obj1 = Obj.findAllByParrent(myParrent); 
model.obj2 = Obj2.findAllByParent(myParrent); 

... 

model.obj50 = Obj50.findAllByParrent(myParrent); 
model.obj51 = Obj51.findAllByParent(myParrent); 

def str = render(template:"template", model:model); 

render(str); 
} 

} 

爲什麼模型加載_template.gsp但_template2.gsp

編輯不承認任何想法:

_template.gsp想這一個(不是這一個簡單,因爲對於每個域對象我必須顯示一個接一個的字段)

<html><body> 
<div>${obj1}</div> 
<div>${obj2}</div> 
<div>${obj3}</div> 
.... 
<div>${obj24}</div> 
<div>${obj25}</div> 
...... 
<g:render template="template2"/> 
..... 
</body></html> 

_template2.gsp:

<div>${obj26}</div> 
    <div>${obj27}</div> 
    <div>${obj28}</div> 
    ........ 
    <div>${obj50}</div> 

因此,在一個網頁,我想一次顯示約50域(目的是爲了填寫表格,所以不要怪我,如果我要顯示在一旦所有的數據...)

感謝

+0

你沒告訴我們你的模板代碼。 – Gregg 2011-02-03 16:15:31

回答

0

您需要的模型(一個或多個)傳遞到其他的模板:

<g:render template="template2" model="[key:value]" /> 
+0

但如何將模型從主模板傳遞給子模板? – nightingale2k1 2011-02-04 05:47:25