我有很长的报告模板。它一次包含超过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个域名(目的是填写表格,所以如果我必须一次显示所有数据,请不要怪我...)
由于
答案 0 :(得分:0)
您需要将模型传递到另一个模板:
<g:render template="template2" model="[key:value]" />