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,

Was it helpful?

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) 
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top