FreeMarker 和SpringMVC 国际化设置
今天有网友问我FreeMarker 和SpringMVC 国际化应该如何设置,他总是设置失败
其实设置FreeMarker 和SpringMVC 国际化只需要简单六步即可完成
第一步,在applicationCentext.xml里的FreeMarker配置里面的templateLoaderPath,做如下修改(freemarker的一些配置我就不详细说了哈)
<property name="templateLoaderPath" value="/WEB-INF/theme/freemarker/" />
这里表示我们的freemarker的模版文件所在目录
第二步,在applicationCentext.xml里的,配置资源文件所在位置
<bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource"> <property name="basename"> <value>language/message</value> </property> </bean>第三步,在xxx-servlet.xml中配置本地化解析器,我这里是Cookie的本地化解析器
<bean id="localeResolver" class="org.springframework.web.servlet.i18n.CookieLocaleResolver"> <property name="cookieMaxAge" value="604800" /> <property name="defaultLocale" value="zh_CN" /> <property name="cookieName" value="Language"></property> </bean>通过以上三步,我们就知道了,我们的模版文件在/WEB-INF/theme/freemarker/这里
我们的资源文件在这里language下的message开头的资源文件,如我这里是message_zh_CN.properties
第四步,将spring-webmvc包里的spring.ftl拷贝出来,具体位置在这里:org/springframework/web/servlet/view/freemarker
拷贝到你模版所在目录下的任意位置,我这里是放在了includes目录下
第五步,在FreeMarker配置里面,freemarkerSettings里增加prop节点,部分代码如下:
<bean id="freemarkerConfig" class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer"> <property name="templateLoaderPath" value="/WEB-INF/theme/freemarker/" /> <property name="freemarkerSettings"> <props> ********** <prop key="auto_import">includes/spring.ftl as spring</prop> </props> </property> </bean>既增加了auto_import 他的值里面的includes/spring.ftl路劲是相对于上面设置的templateLoaderPath值,是相对路径
在这里是自动导入,也可以在ftl页面手动导入,在ftl页面顶部加上代码 <#import "/includes/spring.ftl" as spring />
注意,路劲都是相对于上面设置的templateLoaderPath值,是相对路径
第六步,测试<@spring.message "common_project"/>或者<@spring.message code="common_project"/>都是可以
爆款云服务器s6 2核4G 低至0.46/天,具体规则查看活动详情