2017-09-04 39 views
0

嗨,我在Grails中很新,在grails中有一个非常简单的问题,我希望有人能帮助我。Grails f:现场显示选中下拉菜单

我有一个简单的域类人如下:

class Person { 

    String name // name of the person 
    Date dob  // date of birth 

} // end of class 

我已经在我的数据库几个人的条目。

在另一种形式中,我想让用户从下拉列表中选择年龄在21岁以上的人的姓名。现在它看起来是这样的:

<fieldset class="form"> 

    <f:field bean="Person" property="name" /> 

</fieldset> 

如何过滤所有其他人的数据库,并只显示人的上述谁21岁的名称?

非常感谢你提前!

+0

您可以用'Person.findAllByDobGreaterThanEquals(someVariableDate)'和文档检查:http://docs.grails.org/3.1.1/ref/Domain%20Classes/findAllBy.html – fsi

+0

谢谢@fsi。这工作! –

回答

0

在控制器中搜索年龄大于21岁的人,然后将其传递给gsp进行显示。这样的事情:

import groovy.time.TimeCategory 

def create() { 

// all your other codes 
def adults = Person.findAllByDobGreaterThanEquals(new Date() - 21.year) 

// other codes.... 
respond new Person(params), model:[adults :adults] 
} 

然后用结果集在gsp中显示它。

<fieldset class="form"> 

    <f:field bean="Person" property="name" > 
     <g:select name="name" from="${adults}" optionKey="id" /> 
    </f:field> 

</fieldset>