Ho dominio "paese" e su list.gsp ho blocco di ricerca con campo di input. Il primo problema è stato quando ho provato ad usare paginate sulla mia lista e ho sempre mostrato tutti i risultati, in questo caso ho trovato la soluzione e ho inviato solo 10 valori per la visualizzazione (se conosci un'altra soluzione, per favore dimmelo). La mia ricerca sembra questo:grana paginazione dei risultati di ricerca
def search = {
if(query){
def srchResults = searchableService.search(query, params)
def result = Country.executeQuery("select new map(a.name as name, a.datacenter as datacenter) from Country a where a.name like '%"+ params.q + "%'")
if (params.offset)
{
x = params.offset.toInteger()
y = Math.min(params.offset.toInteger()+9, result.size()-1)
} else
{
x = 0
size = result.size() - 1
y = Math.min(size, 9)
}
def q=params.q
[countryInstanceList: result.getAt(x .. y), countryInstanceTotal:result.size(), q:params.q]
}else{
redirect(action: "list")
}
}
Ora ho un altro problema, quando si preme pagina successiva poi i miei params dal campo di ricerca è la pulizia e il risultato è nullo. Ho provato a inviare il valore del campo come parametro, ma io cosa faccio qualcosa di sbagliato.
La mia pagina di ricerca si presenta come:
<g:form action="search">
<div class="search" >
Search Country
<g:hiddenField name="q" value="${params.q}" />
<input type="text" name="q" value="${params.q}" />
<input type="submit" value="Search"/>
</div>
</g:form>
...... ......
Emmmm, perché si utilizza il motore di ricerca e in seguito si utilizza la query HQL? –