在开发过程中遇到乱码十分的头痛,如果你在开发过程中也遇到了乱码,本文或许对你有些帮助。
乱码场景:
项目采用Spring框架,视图层使用freemarker,当点击某个链接时redirect到某个Action作些业务逻辑处理,然后再重定向到一个html页面,但是重定向到html页面时,html里面的中文全部变成乱码,在web.xml加过滤器,html、java编码都按UTF-8写还是不起作用,偶尔发现在Action里,加这句话可使页面恢复正常
response.setContentType("text/html;charset=utf-8");
如果每个Action都这样写很是繁琐,修改freemarker配置加入描红的代码
<bean id="freeMarkerViewResolver" class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver">
<property name="requestContextAttribute" value="rc"/>
<property name="prefix" value=""/>
<property name="suffix" value=".html"/>
<property name="cache">
<value>false</value>
</property>
<property name="contentType" value="text/html" />
<property name="exposeSpringMacroHelpers" value="true"/>
<property name="viewClass">
<value>org.springframework.web.servlet.view.freemarker.FreeMarkerView</value>
</property>
</bean>
在html头文件中加入<meta http-equiv="content-type" content="text/html; charset=UTF-8">然后在web.xml再配置下过滤器,将所有编码都统一,这样它就甭想再乱码了
<filter>
<filter-name>encodingFilter</filter-name>
<filter-class>
org.springframework.web.filter.CharacterEncodingFilter
</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
分享到:
相关推荐
本文将深入探讨Freemarker中中文乱码的成因及解决策略。 ### 成因分析 中文乱码问题主要源于编码不一致。在Freemarker中,乱码可能发生在多个环节:模板文件的读取、数据模型的处理以及最终HTML页面的渲染。具体来...
Freemarker是一个强大的Java模板引擎,常用于动态生成HTML、XML等Web页面,尤其是在MVC框架如Spring MVC中,作为视图层的技术选择。在学习和使用Freemarker的过程中,可能会遇到乱码问题,这是非常常见的困扰。这篇...
在本示例中,我们将探讨如何使用Spring框架与FreeMarker模板引擎相结合,来实现一个功能丰富的电子邮件服务。这个服务能够发送HTML格式的邮件,其中包含内嵌的图片,并且能够处理附件,同时解决字符编码可能导致的...
本实例将引导你入门Freemarker,解决在Eclipse环境下使用Java编译时可能出现的乱码问题,并确保使用UTF-8编码方式进行处理。 **1. Freemarker简介** Freemarker是一个基于模板的开源Java库,它与Spring MVC、Struts...
**FreeMarker**是一款强大的模板引擎,它被广泛应用于Web应用中,用于生成动态页面内容。而**Spring框架**是Java领域中最受欢迎的企业级应用程序开发框架之一。两者结合能够极大地提高Web项目的开发效率及维护性。 ...
- 如何解决乱码问题。 - 如何提高性能。 - 如何正确使用内置标签。 通过以上详细解释,读者可以更好地理解Freemarker的核心概念、指令用法以及一些常见的技巧和注意事项,从而更高效地使用Freemarker进行模板...
在"Spring Boot web 访问"这个主题中,我们将探讨如何创建一个基础的Spring Boot Web应用,访问HTML页面,以及如何使用Spring Boot DevTools进行开发时的热部署,同时解决中文乱码问题。 首先,我们需要理解Spring ...
在Spring Boot应用中,XSS(Cross Site Scripting,跨站脚本攻击)是一种常见的安全威胁,它允许攻击者向Web页面注入恶意脚本,从而影响用户的安全。本项目"spring boot xss防御"旨在介绍如何在Spring Boot环境中...
在描述中提到的“生成的word内容中有&等特殊字符也不需要转义处理”,这指的是FreeMarker引擎在处理模板时,能够自动处理特殊字符,避免了在生成Word文档时出现乱码或解析错误的问题。 FreeMarker的核心概念包括: ...
FreeMarker是Java语言的一个模板引擎,它与Spring、Struts等框架结合紧密,允许开发者将逻辑代码与展示层分离,通过模板文件来决定输出内容。模板文件主要由两部分组成:固定文本和变量表达式。变量表达式会根据...
6. **创建视图**:使用JSP、Thymeleaf或Freemarker等模板引擎创建视图页面,展示数据并接收用户输入。 7. **处理乱码问题**:为了防止乱码,需要在Controller中设置字符编码,例如,`@RequestMapping(value = "/...
**Spring MVC 中的编码与乱码问题** 在处理中文字符时,可能会遇到乱码问题。为解决这个问题,可以在 Web.xml 中配置 DispatcherServlet 的初始化参数,例如设置编码方式为 UTF-8: ```xml <param-name>...
- 配置 CharacterEncodingFilter,解决中文乱码问题。 **4. 实现登录逻辑** - 编写控制器类 (LoginController.java),负责处理登录请求。 - 通过 @RequestMapping 注解指定请求映射路径。 - 在控制器的方法中...