2015-07-22 3 views
1

Я хотел бы иметь гибкость для визуализации шаблонов для электронных писем и файлов, которые на самом деле не присутствуют под видами/каталогами или где-либо на самом деле в приложении.Рендеринг шаблона Grails вне приложения

Причина в том, что я могу затем упаковать и развернуть версии шаблонов независимо от основного приложения.

Итак, у меня есть шаблон '_Backup_Email.gsp', определенный в разделе 'views/emails /'.

Если я сделать следующее:

render groovyPageRenderer.render(template: "/emails/Backup_Email", model: [serverGroup: serverGroup]) 

то делает хорошо.

Если скопировать шаблон, чтобы сказать «C: /templates/emails/_Backup_Email.gsp», затем выполните следующие действия:

render groovyPageRenderer.render(template: "C:/templates/emails/Backup_Email", model: [serverGroup: serverGroup]) 

Я просто получаю пустой экран.

Мне явно не хватает чего-то здесь.

+0

Из руководства ... _ Обратите внимание, что если значение атрибута шаблона начинается с символа '/', оно будет разрешено относительно каталога представлений. Это полезно для совместного использования шаблонов между представлениями. Без ведущего '/' он будет сначала разрешен относительно текущего каталога представления контроллера, а в противном случае - каталога представлений верхнего уровня. В любом случае файл шаблона должен быть назван с личным подчеркиванием ('_'), но указан в атрибуте шаблона без этого подчеркивания или суффикса .gsp. Таким образом, похоже, что вы можете использовать только шаблоны в приложении. . – smitp33

ответ

0

Как насчет использования свойства вместо жестко закодированных путей к шаблонам?

Вы можете запустить приложение с помощью -DtemplateFolder =/home/user/grails/templates.

Я бы сохранил шаблоны в виде текстовых файлов с содержимым почтовых сообщений и т. Д. Вы можете включить отображенные/объединенные шаблоны в GSP, которые проживают в обычных папках Grails.

Поскольку вы используете grails, у вас должен быть доступ к движку шаблонов строк groovy, который вы можете использовать для объединения ваших шаблонов с данными.

Строка шаблон двигатель описан здесь

http://www.groovy-lang.org/templating.html

Я надеюсь, что это помогает.

+0

Я уже использовал свойства приложения для пути к базовому каталогу, чтобы избежать жесткого кодирования с тем же результатом. Причина, по которой я не привел в приведенном выше примере, заключалась в том, чтобы упростить код. – smitp33

Смежные вопросы