如何使用Grails外部化GSP邮件模板?

dea*_*mon 8 email configuration grails templates gsp

当从模板呈现电子邮件时,模板将在"grails_app/views"中查找:

mailService.sendMail {
    from sender
    to recepient.email
    subject "Don't forget"
    body  (view: "/emails/reminder",
        model:[recepient: recepient, document: document])
}
Run Code Online (Sandbox Code Playgroud)

如何将邮件模板放在应用程序(war文件)之外的文件系统中?

Jar*_*red 8

有两种选择:

  1. 将模板作为文本存储在数据库中,并生成默认的crud代码以更新它们.然后,您将修改电子邮件代码,以使用域对象将数据从数据库中提取出来.
  2. 将模板作为字符串存储在Groovy配置文件中.Groovy可以使用可以与打包的应用程序分开编辑的外部配置文件.有关详细信息,请参阅此博文.

获得字符串后,可以使用Grails控制器中的GSP引擎和任意字符串来创建视图.有关详细信息,请参阅此博客文章.

简而言之,您可以使用列出的选项之一将模板存储为字符串,然后在检索模板字符串后使用Grails GSP引擎创建视图.