| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java EE (J2EE) и Spring > Использование Velocity |
| Автор: Vokunya 4.4.2011, 16:33 |
| Есть у кого-нибудь опыт применения velocity сугубо для электронных писем? Меня интересует только эта узкая функциональность, т.е. всевозможные настройки сервера, портов, списка получателей... и т.д. В общем, было бы неплохо увидеть пример Ссылки на ресурсы принимаются P.S. в принципе, если есть какой-нибудь движок по скромнее, заточенный сугубо под данный функционал, то тоже будет очень хорошо |
| Автор: Embedded 4.4.2011, 17:36 |
| Vokunya, Что-то такое видел http://www.springbyexample.org/examples/velocity-email-template.html Ну вообще есть еще конечно FreeMarker, по функционал чуть чуть слабее, но и немного быстрее.. Хотя честно сказать хрен редьки не слаще. В принципе для этих целей Velocity часто пользуется... В вики так и написано: http://ru.wikipedia.org/wiki/Apache_Velocity |
| Автор: tux 4.4.2011, 20:23 |
Vokunya, Velocity - это не более чем генератор текста. Учитывая широту применения текстогенерации, специализированных движков для почты ожидать сложно, тем более что это достаточно просто. Еще пара примеров:
|
| Автор: Vokunya 5.4.2011, 10:33 | ||||||
осознал и согласен Возник первый вопрос: vm-файл имеет такие строки
Т.е при подстановке будут вызваны геттеры для полей code, name, manager. Правильно? Но если какое-нибудь поле не инициализировано, то шаблон остается без изменения (т.е если, например, менеджер не указан, то в сгенерированном тексте будет такое
Как обойти такое поведение, кроме как вручную проверять все поля? |
| Автор: kkorsakoff 5.4.2011, 11:48 |
| Можно воспользоваться конструкцией $display.alt($project.Manager,'default manager') http://velocity.apache.org/tools/devel/javadoc/org/apache/velocity/tools/generic/DisplayTool.html#alt(java.lang.Object, java.lang.Object) |
| Автор: Vokunya 5.4.2011, 14:14 | ||
Я еще толком не разбирался, бегло просмотрел... это получается, что еще отдельно должно настраиваться VelocityTool, через xml например? т.е просто написав приведенный пример в vm-ке, ничего не заработает? |
| Автор: Embedded 5.4.2011, 15:02 | ||
| Vokunya, а если так напишите
не получается? Дело в том что если переменной нет в контексте или ей присвоен null то Velocity будет печатать её имя, но поскольку Velocity зрелый движок, разработчики предусмотрели подавление такого поведения с помощью символа ! перед именем переменной. Тогда Velocity будет игнорировать ссылку на ошибочную переменную. |