grails - Cereal 嵌套g:每个

标签 grails groovy

我试图遍历索引 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/

相关文章:

grails - 将值注入(inject)内部标签

spring - 如何为每个 url 配置 grails/spring 身份验证方案?

grails - 如何使用命名查询将Grails上的嵌套属性与嵌套范围的 “outside”中的属性进行比较?

java - 如何在groovy中打印特殊字符

spring - 从src/groovy中的类获取对spring bean的引用

要在 Groovy 中映射的 XML 元素。使用 XMLSluper

java - 在任务创建期间访问项目扩展?

amazon-web-services - AWS S3 Java SDK 上传失败,Groovy 中出现 "Connection pool shutdown"

grails - doWithDynamicMethods 未被调用

mysql - 在 Grails 中使用复合主键搭建 MySQL 表