我的域类中有三个字段,即client_id,client_name,client_address。我想在list.gsp页面中搜索client_name的基本内容。我尝试过但不适合我。我是grails的新手。我是否遵循正确的方法或任何可能的解决方案?
list.gsp页面: -
<g:if test="${flash.message}">
<div class="message" role="status">${flash.message}</div>
</g:if>
<fieldset class="form">
<g:form action="list" method="GET">
<div class="fieldcontain">
<label for="query">Search for Client Name:</label>
<g:textField name="query" value="${params.query}"/>
</div>
</g:form>
</fieldset>
ClientController.groovy: -
def list(Integer max) {
params.max = Math.min(max ?: 10, 100)
def taskList = Client.createCriteria().list (params) {
if ( params.query ) {
ilike("client_name", "%${params.query}%")
ilike("client_id", "%${params.query}%")
}
}
[clientInstanceList: taskList, clientInstanceTotal: Client.count()]
}
答案 0 :(得分:2)
使用您的代码格式化Grails将生成如下的查询
其中lower(this_.client_name)喜欢? 和更低(this_.client_id)喜欢? )
我猜您需要将其更改为 OR 传导。
def taskList = Client.createCriteria().list (params) {
if ( params.query ) {
or{
ilike("client_name", "%${params.query}%")
ilike("client_id", "%${params.query}%")
}
}
}
答案 1 :(得分:0)
尝试使用Grails Rich-UI插件。在该插件中,自动完成选项可用.....