我正在尝试遍历索引视图中的字段列表。假设我将以下内容传递给index.gsp:
[SomeDomainList: SomeDomain.list(), fields: ['field1', 'field2', 'field3']]
然后在index.gsp中我有:
<g:each in="SomeDomainList" var="SomeDomainInstance">
<g:each in="fields" var="field">
<td>${SomeDomainInstance.field}</td>
</g:each>
</g:each>
我认为,因为SomeDomainInstance变量被评估,所以也会对字段变量进行求值。但是,我得到了一个&#34;没有这样的属性:类的字段:SomeDomain&#34;。我也尝试过:
<td>${SomeDomainInstance.${field}}</td>
但是这会产生一个&#34;未闭合的GSP表达&#34;错误。谁能告诉我如何实现这一目标呢?
答案 0 :(得分:0)
尝试在示例中添加双引号:
<td>${SomeDomainInstance."${field}"}</td>
您只需使用条件查询和预测选择您感兴趣的字段:
def domainList = SomeDomain.createCriteria().list {
projections {
property('field1')
property('field2')
property('field3')
}
}
[SomeDomainList: domainList]
或者如果您需要列名:
def domainList = SomeDomain.withCriteria{
resultTransformer(CriteriaSpecification.ALIAS_TO_ENTITY_MAP)
projections {
property( 'field1', 'field1')
property( 'field2', 'field2')
property( 'field3', 'field3')
}
}
[SomeDomainList: domainList]
答案 1 :(得分:0)
为什么人们如此喜欢GStrings?一个简单的subscript operator
会:
<td>${SomeDomainInstance[ field ]}</td>