Использование свойств Java в Freemarker

HI,

У меня в приложении есть типичный файл messages.properties . Я пытаюсь создать электронное письмо с помощью Freemarker.

Шаблон Freemarker должен сгенерировать String , после чего я отправлю пользователю String по электронной почте. Однако нам он нужен многоязычный. Итак, мне пришло в голову Properties .

Мой файл свойств выглядит так:

mail.layout.contactus=Contacteer ons
mail.layout.greeting=Hoi

В Java я ввожу файл Properties в мою HashMap вот так :

rootMap.put("lang", (mail.getLanguage().equals(Language.FRENCH) ? langFR : langNL));

И попробуйте прочитать его в FreeMarker следующим образом:

<p>${lang.mail.layout.greeting} ${user.firstname},</p>

Но получите следующее исключение:

freemarker.core.InvalidReferenceException: Expression lang.mail is undefined on line 10, column 116 in layout/email.ftl.

Как ни странно, там написано только lang.mail в отличие от lang.mail.layout .greeting

Изменить: Я попробовал определить свои ключи следующим образом:

mail_layout_contactus=Contacteer ons
mail_layout_greeting=Hoi

, который действительно работает

7
задан Bart Vangeneugden 16 May 2011 в 16:06
поделиться