最近使用freemarker模板引擎输出html时,发现java服务端返回的中文数据在ftl文件中显示正常,但是ftl文件写死的中文出现乱码的情况。
1.首页ftl文件设置了网页的编码如下:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
2.spring-mvc关于freemarker的配置如下,需要在freemarker的配置里加上
<property name="contentType" value="text/html;charset=UTF-8"></property>
<!-- freemarker的配置 -->
<bean id="freemarkerConfig" class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">
<property name="templateLoaderPath">
<value>/WEB-INF/views/</value>
</property>
<!--设置编码 -->
<property name="defaultEncoding" value="UTF-8" />
<!-- 页面数值的显示格式,避免1000显示成1,000 -->
<property name="freemarkerSettings">
<props>
<prop key="number_format">#</prop>
</props>
</property>
</bean>
<!--FreeMarker视图配置-->
<bean id="ftlviewResolver" class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver">
<property name="suffix" value=".ftl" />
<property name="order" value="0"/>
<property name="contentType" value="text/html;charset=UTF-8"/>
<property name="viewClass" value="org.springframework.web.servlet.view.freemarker.FreeMarkerView"/>
<!-- 方便页面获得项目的绝对路径 -->
<property name="requestContextAttribute" value="request" />
</bean>
这样就解决了乱码的问题。
原文作者技术博客:https://www.jianshu.com/u/ac4daaeecdfe
网友评论