複数のドメイン オブジェクトがあり、1 対多、多対多の関係があり、検索データはいくつかのテーブルから取得され、常に同じです。アプリに Searchable プラグインを実装し、次のような単一の検索フィールドがある場合に結果を取得できるようにしました。
<g:form url='[controller: "searchable", action: "searchContact"]' id="searchableForm" name="searchableForm" method="get">
<g:textField name="query" value="${params.query}" size="40"/>
<input type="submit" value="Search Contact" />
</g:form>.
しかし、searchTerm を取得するための複数のテキスト フィールド、チェック ボックス、および g:select ボックスがあります。フィールドのいずれかまたは複数の検索選択に基づいて、検索結果を取得する必要があります。間にすべての検索フィールドを含め、すべてのパラメーターに対して単一の送信ボタンを設定する方法。これが私の検索アクションコードです:
def searchContact = {
if (!params.query) {
return [:]
}
try {
String searchTerm = params.query
println searchTerm
return [searchResult: searchableService.search(searchTerm, params)]
} catch (SearchEngineQueryParseException ex) {
return [parseException: true]
}
}
迅速な提案をいただければ幸いです。