2017-09-04 6 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> 
関連する問題