2017-09-04 58 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>