среда, 4 июня 2008 г.

grails: работа с шаблонами

Вот здесь описан способ отправки почтовых сообщений с html форматированием. Всё бы хорошо, но использование groovy шаблонов вместо обычных gsp для задания отображения почтового сообщени я считаю неверным.

Поэтому я чуть-чуть покапался во внутренностях grails и вот результат:

import org.codehaus.groovy.grails.web.pages.GroovyPagesTemplateEngine
import org.codehaus.groovy.grails.web.pages.GroovyPageTemplate
import grails.util.GrailsWebUtil
import org.springframework.web.context.request.RequestContextHolder

class TemplateService {
GroovyPagesTemplateEngine groovyPagesTemplateEngine

def createHtml(String templateName, Map model) {
if(!RequestContextHolder.getRequestAttributes())
GrailsWebUtil.bindMockWebRequest()

GroovyPageTemplate tpl = groovyPagesTemplateEngine.createTemplate(templateName)
StringWriter out = new StringWriter()
tpl.make(model).writeTo(out)

return out.toString()
}
}


Хочу отметить, что очень большой недостаток доступной документации по grails заключается в отсутствии описания контекстных бинов, которые grails инициализирует и использует. В данном случае такой бин - groovyPagesTemplateEngine.

Комментариев нет: