SpringMVC form表单中文乱码解决方案(基于JavaConfig)

来源:互联网 发布:nginx 转发到其他ip 编辑:程序博客网 时间:2024/06/06 04:17

SpringMVC表单提交数据后,数据库中的数据中文乱码,通过show variables like "%char%"; 查看数据库编码,发现的确是UTF-8,说明数据库没有问题,问题出在服务器上。
通过搜集资料得到了简便的解决方法,在WebInitializer中,重写AbstractAnnotationConfigDispatcherServletInitializer的onStartup方法:

@Override    public void onStartup(ServletContext servletContext) throws ServletException {        super.onStartup(servletContext);        servletContext.addFilter("name", new CharacterEncodingFilter("UTF-8", true))                .addMappingForUrlPatterns(null, false, "/*");    }

整个初始化类如下所示:

public class WebAppInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {    @Override    protected Class<?>[] getServletConfigClasses() {        return new Class<?>[]{WebConfig.class};    }    @Override    protected Class<?>[] getRootConfigClasses() {        return new Class<?>[]{RootConfig.class};    }    @Override    protected String[] getServletMappings() {        return new String[] {"/"};    }    @Override    public void onStartup(ServletContext servletContext) throws ServletException {        super.onStartup(servletContext);        servletContext.addFilter("name", new CharacterEncodingFilter("UTF-8", true))                .addMappingForUrlPatterns(null, false, "/*");    }}

该方法通过测试,成功决绝中文乱码问题。

1 0