Question

I have a controller's method which renders a template. This works fine to render the template within my .gsp view.

I am also using the mail-plugin, and I would like to used the same controller's function to render the template by email, hence populating some email with it.

I know how to do that from a .gsp view via Ajax request but do not know any way to do that from within a controller or a service. The idea would be to use my controller's action more like a function, take the rendered teplate and populate my email with it. Also, my controller's action needs to have some 'params' properties to work properly.

Any suggestion most welcome.

Regards,

Était-ce utile?

La solution

You can use the render tag( http://grails.org/doc/latest/ref/Tags/render.html ) can be used to return a string.

I would move whatever logic you have in your controller that is reusable into a service, and then use this to return a model, then you can simply call this via:

def model = myService.method( ... )
def emailContent = g.render( template: 'mytemplate', model: model) 
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top