我可以选择使用<g:select>
从下拉列表中选择日期。如何通过此获取非重复日期值?这是从域类以指定格式获取日期的代码。
dob的类型为Date。
<g:set var="dateFormat" value="MM/dd/yyyy"/>
<g:select id="dob" name="dob" from="${Person.list().dob*.format(dateFormat)}"
value="${personInstance?.dob?.format(dateFormat)}" />
答案 0 :(得分:6)
在项目列表上拨打unique()
?
即:
def colonies = [ 'a', 'a', 'b', 'c', 'c' ]
println colonies.unique()
打印
[ 'a', 'b', 'c' ]
请注意,unique()
会改变原始集合,所以
println colonies
调用unique()
后也打印
[ 'a', 'b', 'c' ]
答案 1 :(得分:3)
如果“Colony”是grails域类,则可以更改查询以检索不同的值。您没有提供详细信息,但是假设您的域类名为“Colony”,它有一个名为“name”的属性,由于某种原因您没有制定唯一约束。然后,您可以执行以下操作:
//add this method to Colony.groovy
public static List listUnique() {
Colony.withCriteria {
projections {
distinct "name"
}
}.sort()
}
//in xxx.gsp
<g:select name="colony" from="${Colony.listUnique()}" />
我同意上面的tim_yates的回答,但也认为你也可能会喜欢grails / hibernate方法。
答案 2 :(得分:0)
<g:set var="dateFormat" value="MM/dd/yyyy"/>
<g:select id="dob" name="dob" from="${Person.list().dob*.format(dateFormat).unique()}"
value="${personInstance?.dob?.format(dateFormat)}" />