Grails中的OptionValue选择域对象列表

时间:2012-08-30 14:41:59

标签: grails

我已经研究过如何使用可选值显示下拉列表。目前,我在下拉列表中有一个域对象(人员)列表。它们以“名字姓氏”显示。

我想更改名称在选择中的显示方式。看看g:select API,我看到我可以使用optionValue和optionKey。我试过了,但无处可去。所以这是我目前的代码:

<g:select id="allPeople" name="allPeople" from="${dropdown}" />

我希望输出为“Last,First”。我试过这个:

<g:select id="allPeople" optionValue="${it?.last},${it?.first}" from="${dropdown}" name="allPeople" value="" >

2 个答案:

答案 0 :(得分:4)

一种很好的方法是在你的域上添加一个瞬态getter,然后将其用于optionValue。

class Person {
    String first
    String last

    static transients = ['lastFirst']

    String getLastFirst() {
        "$last, $first"
    }
}

然后

<g:select name="allPeople" optionValue="${it.lastFirst}" from="${dropdown}"/>

答案 1 :(得分:2)

试试这样:

optionValue="${{it?.last+', '+it.first}}"

这意味着您传递了一个构建所需内容的闭包。