2011-02-03 13 views
0

レポート用に非常に長いテンプレートがあります。これは一度に50以上のGrailsドメインを含んでいます。しかし、私が25ドメインまで読み込もうとしたとき、「無効なメソッドのコード長」と言われました。私はGoogleで検索し、テンプレートを分割/チャックすることをお勧めします。それが今のテンプレート_template.gsp無効なメソッド非常に長いテンプレート/ビューのコード長

だったが、前に

:_template.gspとは

を_template2.gspが、_template.gspの内側に、私はそのようなコードを入れ

は、だから私は、次の変更を行いました

として今の問題は、それは私の共同でtemplate2にコントローラにロードされたモデル/オブジェクト....

をロードすることはできません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はこの1つのように単純ではない、この1を(希望、各ドメインオブジェクトのために私は1つのフィールドずつ表示する必要があるため)

<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

答えて

0

あなたは他のテンプレートにモデル(複数可)を渡す必要があります。

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

メインテンプレートからサブテンプレートにモデルを渡す方法は? – nightingale2k1

+0

私の例を見ましたか?また、ドキュメントを読むこともできます(http://www.grails.org/Tag+-+render)。 – Gregg

関連する問題