【问题标题】:Grails select won't display string from nested classGrails select不会显示嵌套类中的字符串
【发布时间】:2012-01-05 21:00:29
【问题描述】:

我正在尝试做一些非常简单的事情,但这显然不是那么简单。我有一个域类:

class Regex {
    String name
    String Regex 
}

和另一个班级:

class RegexRef {
    int sequenceNumber
    Product product
    Regex regex
}

现在,在一个选择中,我想列出 RegexRef 实例,正则表达式的名称作为 optionValue 如下:

<g:select name="regexRef.id" from="${com.mycompany.RegexRef.list()}" optionKey="id" size="5" optionValue="regex.name" value="${actionRefInstance?.regexRef?.id}"  />

但这不起作用。它抛出: 异常消息:没有这样的属性:类的 regex.name:com.jetheaddev.RegexRef

我可以在其他构造中做这个错误的方向......

<g:link controller="regexRef" action="show" id="${actionRefInstance?.regexRef?.id}">${actionRefInstance?.regexRef?.regex.name.encodeAsHTML()}</g:link>

而且效果很好。

【问题讨论】:

    标签: grails


    【解决方案1】:

    optionValue="regex.name" &lt;g:select/&gt; 试图检索 RegexRef 的属性为:

    regexRefInstance."regex.name"
    

    要检索Regex 类的名称属性,请执行以下操作:

    <g:select optionValue="${{it.regex.name}}"/>
    

    它将在列表中的每个条目上运行 optionValue Closure 并检索相关的 name 属性。

    【讨论】:

    • 谢谢,这正是我所需要的。在哪里可以找到关于它的变量,我假设它是选择列表条目的占位符对象?
    • 我不确定这是否是您要问的,但在g:select 的文档中,optionKey 描述提到它是 bean 上的一个属性,它是个体.list() 的实体。在示例的下方,有一个显示了我给你的optionValueClosure 答案。
    猜你喜欢
    • 2011-08-06
    • 1970-01-01
    • 1970-01-01
    • 2020-08-23
    • 1970-01-01
    • 2012-12-21
    • 2013-06-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多