我正在尝试做一些非常简单的事情,显然那不是那么简单。我有一个域类:
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}" />
但这不起作用。它抛出:
异常消息:无此类属性:类com.jetheaddev.RegexRef的regex.name
我可以在其他结构中进行这种误导...
<g:link controller="regexRef" action="show" id="${actionRefInstance?.regexRef?.id}">${actionRefInstance?.regexRef?.regex.name.encodeAsHTML()}</g:link>
而且效果很好。
最佳答案
使用optionValue="regex.name"
,<g:select/>
尝试将RegexRef的属性检索为:
regexRefInstance."regex.name"
要检索
Regex
类的name属性,请执行以下操作:<g:select optionValue="${{it.regex.name}}"/>
它将在列表中的每个条目上运行optionValue
Closure
,并检索相关的name
属性。关于grails - Grails选择将不会显示嵌套类中的字符串,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8749740/