Spring MVC с FreeMarker: шаблоны, специфичные для локали - PullRequest
0 голосов
/ 17 февраля 2012

Мы создаем прототип простого приложения Spring MVC с одним поворотом: У нас будут отдельные файлы шаблонов FreeMarker для разных локалей. Таким образом, для представления «домашняя страница» с языковым стандартом US English, средство поиска должно найти файл шаблона homepage_en_us.ftl В противном случае homepage_en.ftl, в противном случае homepage.ftl Так же, как файлы свойств.

Я знаю, что лучше иметь один шаблон с сообщениями, но файлы шаблонов открыты для пользователей, которым удобнее вставлять копии, чем абстракция ресурса, и им, возможно, придется вносить реальные изменения в макет для разных локалей.

Какой самый Springy способ добиться этого?

1 Ответ

1 голос
/ 18 февраля 2012

Это поведение по умолчанию?

У меня определитель моего вида определен следующим образом:

<bean class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver">
    <property name="cache" value="true" />
    <property name="prefix" value="/ftl/" />
    <property name="suffix" value=".ftl" />
    <property name="exposeSpringMacroHelpers" value="true" />
    <property name="exposeRequestAttributes" value="true" />
    <property name="exposeSessionAttributes" value="true" />
</bean>

... и он, когда его спросят о представлении foo, выберетfoo_en.ftl over foo.ftl?

Если вы используете настраиваемый распознаватель представлений, возможно, вы захотите настроить его на использование org.springframework.web.servlet.viewAbstractTemplateViewResolver, так что вы получите все классное поведение бесплатно?

...