学习springMVC 解决乱码的两种配置方式 ,用于记录
JavaConfig 方式:
参考
public class dispatcherServlet extends AbstractAnnotationConfigDispatcherServletInitializer {
@Override
protected Class<?>[] getRootConfigClasses() {
return new Class<?>[] { RootConfig.class };
}
@Override
protected Class<?>[] getServletConfigClasses() {
return new Class<?>[] { WebConfig.class };
}
@Override
protected String[] getServletMappings() {
return new String[] { "/" };
}
/**
* 处理中文乱码
* @param servletContext
* @throws ServletException
*/
@Override
public void onStartup(ServletContext servletContext) throws ServletException {
super.onStartup(servletContext);
servletContext.addFilter("name",new CharacterEncodingFilter("UTF-8",true))
.addMappingForUrlPatterns(null,false,"/*");
}
}
(个人比较喜欢优先用javaconfig方式,比较方便)
xml方式 网上大多是xml配置 :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>
更新 今天在学习thymeleaf 发现同样有中文乱码问题 ,,
网上大多数都是xml乱码解决方式 :
<property name="characterEncoding" value="UTF-8" />
由于我是javaconfig配置方式,看到xml中使用characterEncoding 那么就在templateResolver中添加
templateResolver.setCharacterEncoding("UTF-8");
结果还是中文乱码。。。
后来查了好多终于找到-----在视图解析器也要加一个上述代码!