Question

So, in my method A in the controller ServicioComunitario I send this to the GSP:

tg = ServicioComunitario.findAll("from ServicioComunitario as b where "+query)
[servicioComunitarioInstanceList: tg, params: params]

Then in the GSP I call another method (generarDocDeReporte) of ServicioComunitarioController:

   <g:set var="b" value="${'xls'}"/>            
    <g:set var="a" value="${'excel'}"/>
    <g:set var="servicioLista" value="${servicioComunitarioInstanceList}"/>
    <g:link controller="ServicioComunitario" action="generarDocDeReporte"
        params="${[exportFormat:a, extesion:b, tg: servicioLista] }"
        update="mainContent">Excel</g:link><br/>

Then, in the new method "generarDocDeReporte" I have:

println params.exportFormat+"-"+params.extesion

if(params.tg)
  println "Not empty"

exportFormat and extension work as expected, but the params.tg doesn't seem to behave normal.

I am trying to use this new params.tg where it was a ServicioComunitario.list(params):

exportService.export(params.exportFormat, response.outputStream, ServicioComunitario.list(params), fields, labels, formatters, parameters)

And here is where I get the error:

exportService.export(params.exportFormat, response.outputStream, params.tg, fields, labels, formatters, parameters)

When I receive the params.tg, do I need to cast it? or what do you think is the error?

Thank you very much in advance

Was it helpful?

Solution

You can't just pass a list of instances like that in a link. You can however collect the ids into a list as a parameter and then use it to populate it later. For example:

<g:link controller="ServicioComunitario" action="generarDocDeReporte"
        params="${[exportFormat:a, extesion:b, tgids: servicioLista.collect{it.id}.join(',')] }"
    update="mainContent">Excel</g:link><br/>

And then in your controller where you need to get the list again:

def tg = ServicioComunitario.getAll(params?.tgids?.tokenize(","))

Also, you don't need to assign params to params when returning your model. parameters are already exposed in the GSP by convention.

[servicioComunitarioInstanceList: tg]
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top