Grails select不会显示嵌套类中的字符串

Grails select不会显示嵌套类中的字符串,grails,Grails,我正在尝试做一些非常简单的事情,显然不是那么简单。我有一个域类: class Regex { String name String Regex } 另一类: class RegexRef { int sequenceNumber Product product Regex regex } 现在,在select中,我想列出RegexRef实例,其中regex的名称作为optionValue,如下所示: <g:select name="regexR

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

class Regex {
    String name
    String Regex 
}
另一类:

class RegexRef {
    int sequenceNumber
    Product product
    Regex regex
}
现在,在select中,我想列出RegexRef实例,其中regex的名称作为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>
它工作正常。

的optionValue=regex.name正在尝试检索RegexRef的属性,如下所示:

regexRefInstance."regex.name"
要检索正则表达式类的name属性,请执行以下操作:

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

它将对列表中的每个条目运行optionValue闭包,并检索相关的name属性。

谢谢,这正是我所需要的。我假设it变量是select列表项的占位符对象。我不确定这是否是您要问的,但在optionKey描述的文档中提到它是bean上的一个属性,它是.list的各个实体。在下面的例子中,有一个显示了我给你的optionValue闭包答案。