标签:nio const tomcat pattern ret 显示 color cep 项目
背景:
一个简单的Controller类,返回结果直接写死了,跟传的参数没关系
@Controller @RequestMapping("/article") public class ArticleController { @Autowired private ArticleService articleService; @RequestMapping("/add") @ResponseBody public Result add(Article article) { try { articleService.add(article); return new Result("添加成功!"); } catch (Exception e) { return new Result("500","添加失败"+e); } } }
web.xml,该部分配置放在web.xml的最上面
<!-- 从页面post传值到controller时汉字出现问号,注意拦截的顺序,放在web.xml里面的最上面 -->
<filter>
<filter-name>characterEncodingFilter</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>characterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
spring-mvc.xml
<mvc:annotation-driven>
<mvc:message-converters><!-- 解决字符串从Controller传递到页面汉字显示问号 -->
<bean class="org.springframework.http.converter.StringHttpMessageConverter">
<constructor-arg ref="utf8Charset" />
</bean>
</mvc:message-converters>
</mvc:annotation-driven>
<bean id="utf8Charset" class="java.nio.charset.Charset" factory-method="forName">
<constructor-arg value="UTF-8" />
</bean>
使用maven的tomcat7插件,启动项目。
浏览器中输入:http://localhost:8080/spring-web-mybatics/article/add?title=你好&classify=1&content=测试测试测试
返回结果的汉字:“添加成功!变为:”?????
解决方法:
把项目的编码改成UTF-8,重新编译、启动即可。
后来想截图,再把UTF-8改为GBK,问题居然没有复现。。。
(04)Spring MVC之Get方式传参访问Controller,从Controller返回json串出现菱形问号(?????)乱码,解决方法。
标签:nio const tomcat pattern ret 显示 color cep 项目
原文地址:https://www.cnblogs.com/javasl/p/12766250.html