2025年@ResponseBody注解使用简介

@ResponseBody注解使用简介1 ResponseBody 注解简介 ResponseBody 注解 主要做两件事 1 将返回值转换成 JSON 如果返回值是 String 或者其他基本数据类型则不满足 key value 形式 不能转换成 json 类型 则返回字符串 2 设置响应头为 application json charset utf 8 返回值为字符串 则不能转换成 json 格式的则响应头设置为 text html

1、@ResponseBody注解简介:

@ResponseBody注解:

主要做两件事:1、将返回值转换成JSON,如果返回值是String或者其他基本数据类型则不满足key-value形式,不能转换成json类型,则返回字符串

2、设置响应头为application/json;charset=utf-8;返回值为字符串,则不能转换成json格式的则响应头设置为text/html,

为防止中文乱码,因此需要使用@RequestMapping(,produces = “text/html;charset=utf-8”)设置响应头编码方式为utf-8

如果方法只是用注解@RequestMapping()注解,则只要有返回值,无论返回值是什么,都会执行跳转操作;返回值设置成void则不执行跳转。

在使用@RequestMapping()注解的前提下,使用@ResponseBody()注解,则有返回值会使用@ResponseBody()注解进行转换并返回前台页面,不会执行跳转操作。

使用注解@RequestMapping()需要导入(json相关)包:jackson-annotations-xxx.jar、jackson-core-xxx.jar、jackson-databind-xxx.jar

还要注意spring版本和json包版本对应,此处使用spring-4.1.6和jackson-2.4.0版本

2、引入的包:


3、sprigMVC环境搭建在上一篇博客《Spring MVC请求参数传值、重定向(redirect)与转发(forward)》
介绍。

4、@ResponseBody在Controller类中的使用
4.1、返回值会转成json数据

@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;
}

返回结果(在页面中展示):


4.2、返回值为中文字符串,需要设置字符编码:
返回值为字符串的情况:返回值为字符串,则不能转换成json格式的,返回的响应头 (conten-type) 为text/html,
为防止中文乱码,因此需要使用@RequestMapping(,produces = “text/html;charset=utf-8”)设置响应头编码方式为utf-8

实例代码:

@RequestMapping(value = "Demo12",produces = "text/html;charset=utf-8")
@ResponseBody
public String Demo12(People peo){

return peo.getName();
}

返回值显示结果:


5、前端jsp页面:
demo.jsp:

<%@page contentType="text/html; utf-8" pageEncoding="UTF-8" language="java" %>


Hello World!






编程小号
上一篇 2025-03-18 12:17
下一篇 2025-02-11 18:57

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/hz/129603.html