非常长的模板/视图上的方法代码长度无效

时间:2011-02-03 15:11:51

标签: java grails view

我有很长的报告模板。它一次包含超过50个Grails域。但是,当我尝试加载最多25个域时,它说“无效的方法代码长度”。我在谷歌搜索,它建议我拆分/浏览模板。

所以我做了以下更改:

之前是一个模板_template.gsp

但现在:_template.gsp和_template2.gsp

但在_template.gsp中我放了诸如

之类的代码

现在问题它不允许将控制器中加载的模型/对象加载到template2 ....

在我的控制器中:

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个域名(目的是填写表格,所以如果我必须一次显示所有数据,请不要怪我...)

由于

1 个答案:

答案 0 :(得分:0)

您需要将模型传递到另一个模板:

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