我试图遍历索引 View 中的字段列表。可以说我将以下内容传递给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变量进行了求值,因此字段变量也将得到求值。但是,我得到一个“没有这样的属性:类的字段:SomeDomain”。我也尝试过:
<td>${SomeDomainInstance.${field}}</td>
但这会导致“未封闭的GSP表达式”错误。谁能告诉我如何实现这一目标?
最佳答案
尝试在示例中添加双引号:
<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]
关于grails - Cereal 嵌套g:每个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44465257/