Java 带FreeMarker的Spring MVC:特定于语言环境的模板

Java 带FreeMarker的Spring MVC:特定于语言环境的模板,java,spring,model-view-controller,internationalization,freemarker,Java,Spring,Model View Controller,Internationalization,Freemarker,我们正在对一个简单的Spring MVC应用程序进行原型设计,只需一次扭转: 我们将为不同的地区提供单独的FreeMarker模板文件。 因此,对于使用locale US English的视图“homepage”,viewresolver应该找到模板文件homepage\u en_US.ftl 如果失败了,homepage_en.ftl,homepage.ftl失败了 就像属性文件一样 我知道最好有一个带有消息的模板,但是模板文件会暴露给那些比资源抽象更容易复制粘贴的用户,他们可能需要为不同的地

我们正在对一个简单的Spring MVC应用程序进行原型设计,只需一次扭转: 我们将为不同的地区提供单独的FreeMarker模板文件。 因此,对于使用locale US English的视图“homepage”,viewresolver应该找到模板文件homepage\u en_US.ftl 如果失败了,homepage_en.ftl,homepage.ftl失败了 就像属性文件一样

我知道最好有一个带有消息的模板,但是模板文件会暴露给那些比资源抽象更容易复制粘贴的用户,他们可能需要为不同的地区进行实际的布局更改


实现这一点最灵活的方法是什么?

这是默认行为

我的视图解析器定义如下:

<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
而不是
foo.ftl

如果您使用的是自定义视图解析器,您可能希望让它使用
org.springframework.web.servlet.viewAbstractTemplateViewResolver
,这样您就可以免费获得所有酷行为了