码迷,mamicode.com
首页 > 编程语言 > 详细

(04)Spring MVC之Get方式传参访问Controller,从Controller返回json串出现菱形问号(?????)乱码,解决方法。

时间:2020-04-24 11:35:07      阅读:83      评论:0      收藏:0      [点我收藏+]

标签: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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!