Из документации специальная переменная .locale
извлекает строковое представление локали.Freemarker - как получить экземпляр локали?
Но как можно получить Locale
в пределах разметки freemarker?
Если нет встроенной функции, я должен передать Locale
шаблону и передать его каждому макросу.
Упрощенный пример:
Java Bean.class
public Locale getLocale();
public String getFoo(Locale locale);
Freemarker
Невозможно использовать строку локаль!
<#setting locale="${bean.getLocale()}">
${bean.getFoo(.locale)}
хорошие новости :) Извините, я не добавил его в режим данных. Просто установите его в верхней части разметки. – djmj
Макросы также могут видеть эту переменную. Даже если вы используете '# import'-s и, следовательно, несколько пространств имен, вы можете использовать' <#global myVar = myValue> '. – ddekany
Обновлено до новой версии и полезно знать функцию глобальных переменных, Freemarker очень мощный! – djmj