@ResponseBody编码问题

本文介绍如何在SpringMVC中解决浏览器显示中文乱码的问题。通过在配置文件中设置字符编码为UTF-8,并在响应头中添加Content-Type信息,确保所有浏览器正确解析中文。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在springmvc配置文件中的<mvc:annotation-driven>加上

<mvc:annotation-driven>
        <mvc:message-converters register-defaults="true">
            <bean class="org.springframework.http.converter.StringHttpMessageConverter">
                <constructor-arg value="UTF-8"/>
            </bean>
        </mvc:message-converters>
    </mvc:annotation-driven>

有的浏览器到这步就可以正常显示中文了,但是我试了下像edge还是不行的,所以我还在response上加了resp.addHeader("Content-type", "text/html;charset=UTF-8");

这样edge显示正常。所以最好还是加上这两步。



@ResponseBody注解是用于声明控制器方法的返回值应该直接作为响应体返回给前台页面,而不是进行跳转操作。通过使用@ResponseBody注解,可以方便地将返回值转换为指定的格式,例如JSON数据。在使用@ResponseBody注解时,控制器方法的返回值会经过转换并直接返回给前台页面,而不会进行跳转操作。 例如,以下是一个使用@ResponseBody注解的示例代码: ```java @RequestMapping(value = "Demo12", produces = "text/html;charset=utf-8") @ResponseBody public String Demo12(People peo){ return peo.getName(); } ``` 在这个示例中,控制器方法的返回值是一个字符串,该字符串会被转换为指定的编码格式(utf-8)后直接返回给前台页面。 另外,当使用@ResponseBody注解时,控制器方法的返回值也可以是一个对象,该对象会被转换成JSON数据格式返回给前台页面。例如: ```java @RequestMapping("Demo11") @ResponseBody public People Demo11(People peo){ System.out.println("这是Demo11!!!!" + peo.getName()); People p = new People(); p.setAge(peo.getAge()); p.setName(peo.getName()); System.out.println("@@@@@@@@@@@@22 -- " + p.toString()); return p; } ``` 在这个示例中,控制器方法的返回值是一个People对象,该对象会被转换成JSON数据格式并返回给前台页面。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [@ResponseBody注解使用简介](https://blog.youkuaiyun.com/weixin_43708793/article/details/106222970)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值