使用HttpMessageConverter<T>将请求信息转换并绑定到处理方法的入参中
或将响应结果转换为对应类型的响应信息,Spring提供两种途径:
-使用@RequestBody/@ResponseBody对处理方法进行标注
-使用HttpEntity<T>/ResponseEntity<T>作为处理方法的入参或返回值
当控制器处理方法使用到@RequestBody/@ResponseBody或HttpEntity<T>/ResponseEntity<T>
spring首先会根据请求头或响应头的Accept属性选择匹配的HttpMessageConverter
进而根据参数类型或泛型类型过滤得到匹配的HttpMessageConverter
若找不到可用的HttpMessageConverter将报错
另:@RequestBody/@ResponseBody可用单独使用
别忘了添加jackson的jar包文件
package com.hous.crud.controller; import java.io.IOException; import java.io.InputStream; import java.util.Date; import java.util.HashMap; import java.util.Map; import java.util.UUID; import javax.servlet.ServletContext; import javax.servlet.http.HttpSession; import org.springframework.http.HttpHeaders; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; @Controller public class JsonController { @RequestMapping("/json") public String json() { return "json"; } @ResponseBody @RequestMapping("/testJson") public Map<String, String> testJson() { Map<String, String> map = new HashMap<>(); map.put("id", UUID.randomUUID().toString()); map.put("lastName", "shanshanbox.com"); return map; } @ResponseBody @RequestMapping("/testHttpMessageConverter") public String testHttpMessageConverter(@RequestBody String body) { System.out.println(body); return "shanshanbox.com " + new Date(); } @RequestMapping("/testResponseEntity") public ResponseEntity<byte[]> testResponseEntity(HttpSession session) throws IOException { byte[] body = null; ServletContext servletContext = session.getServletContext(); InputStream in = servletContext.getResourceAsStream("/files/abc.txt"); body = new byte[in.available()]; in.read(body); HttpHeaders headers = new HttpHeaders(); headers.add("Content-Disposition", "attachment;filename=abc.txt"); HttpStatus statusCode = HttpStatus.OK; ResponseEntity<byte[]> response = new ResponseEntity<>(body, headers, statusCode); return response; } }
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>test json</title> <script type="text/javascript" src="${pageContext.request.contextPath}/scripts/jquery.js"></script> <script type="text/javascript"> $(function(){ $('#json').click(function(){ var url = this.href; var args = {}; $.post(url, args, function(data){ if(data) { var id = data.id; var lastName = data.lastName; alert(id + ' => ' + lastName); } }); return false; }); }); </script> </head> <body> <a href="testJson" id="json">get json</a> <br/><br/> <a href="testResponseEntity" id="json">get ResponseEntity</a> <br/><br/> <form action="testHttpMessageConverter" method="post" enctype="multipart/form-data"> file:<input type="file" name="file"/> desc:<input type="text" name="desc"/> <input type="submit" value="submit"/> </form> <br/><br/> </body> </html>
相关推荐
在Spring MVC中,当控制器方法的返回值前加上`@ResponseBody`时,Spring会将返回的对象直接转换成HTTP响应体的Content,通常用于返回JSON或XML格式的数据。默认情况下,Spring MVC使用`HttpMessageConverter`来完成...
在SSM项目中,向前端返回JSON数据是常见的需求,这通常涉及到Controller层的配置和JSON转换库的使用。 首先,我们需要理解JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时...
总结来说,`jackson-mapper-asl-1.9.13.jar`和`jackson-core-asl-1.9.13.jar`是Spring MVC返回JSON数据所必需的,它们使得Spring MVC能够通过`@ResponseBody`注解将Java对象转换为JSON格式。通过正确配置和利用...
在返回JSON数据的方法上添加`@ResponseBody`注解,表示该方法的返回值应该直接写入HTTP响应体,而不是作为一个视图进行渲染。 4. 使用注解进行对象映射: 你可以使用Jackson提供的注解来定制对象的序列化和反序列...
在现代Web应用中,常常需要与前端进行异步通信,这就涉及到了JSON数据的交换。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。 在Spring MVC中,...
在Spring MVC框架中,返回JSON数据是常见的交互方式,它使得Web应用能够与客户端进行高效的数据交换,尤其在实现RESTful API时尤为重要。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读...
`@RequestBody`用于将请求体中的JSON数据映射到方法参数,而`@ResponseBody`则将方法返回的对象转换为JSON并写入响应体。 例如: ```java import org.springframework.web.bind.annotation.*; @RestController ...
本笔记主要关注SpringMVC中的几个关键特性:数据格式化、数据校验、错误提示、错误信息国际化以及如何返回JSON数据。 1. 数据格式化: 在SpringMVC中,数据格式化是将用户输入的数据转换为业务对象的过程。这通常...
本节我们将深入探讨Spring MVC处理JSON数据的具体实现和基本原理,以及如何利用HttpMessageConverter。 一、JSON数据处理基础 1. JSON结构:JSON由键值对组成,键用引号包围,值可以是字符串、数字、数组、对象、...
返回JSON格式数据的方式更为灵活。除了像返回XML那样指定`produces = "application/json"`,还可以直接返回实现了序列化接口的对象,如`java.io.Serializable`。Spring MVC会自动将对象转换为JSON字符串。 ```...
确保所有依赖库都已引入,并正确配置SpringMVC,以实现后台与前台之间的顺利JSON数据交互。在实际项目中,还可能需要考虑JSON安全问题,例如防止XSS和CSRF攻击,以及优化性能,如使用GZIP压缩等。
在Spring MVC框架中,开发人员经常需要将服务器端的数据以JSON(JavaScript...确保正确配置和使用这些组件,将使你在Spring MVC应用中顺利地处理JSON数据传输。在实际项目中,还需要根据具体需求进行相应的调整和优化。
在现代Web应用中,经常需要与前端交互,返回JSON数据进行数据传输。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。 标题"Spring+SpringMVC+MyBatis...
在现代Web应用中,Ajax常与JSON结合使用,因为JSON数据格式轻便、易于处理,适合于异步请求和响应。 例如,一个简单的jQuery AJAX请求示例,用于从服务器获取JSON数据: ```javascript $.ajax({ url: '/api/data'...
在编写Controller时,可以通过@RequestMapping来指定处理的URL和方法,并结合使用@ResponseBody来直接返回JSON数据。同时,在前端页面中,可以通过Ajax技术发起JSON数据的请求,并处理服务器响应的数据。 以下是一...
在IT行业中,JSON(JavaScript...通过以上步骤,即使在Spring MVC 3.2及以下版本,我们也能成功地使用Jackson(jack-json)库处理JSON数据。这个解决方案对于那些无法升级到更高版本Spring的项目来说,无疑是一大福音。
- Controller处理业务逻辑后,可能需要返回JSON数据。通过`@ResponseBody`注解,SpringMVC会调用合适的`HttpMessageConverter`将Java对象转换为JSON字符串并返回给前端。 - 前端接收到响应,解析JSON数据并更新...
Spring MVC作为Spring框架的一部分,提供了一种优雅的方式来处理JSON数据的读取和显示。本篇文章将深入探讨如何在Spring MVC中实现JSON格式的数据处理,包括JSON的解析、转换以及使用注解进行配置。 首先,让我们...
在现代 Web 开发中,JSON(JavaScript Object Notation)作为一种轻量级的数据交换格式,广泛用于前后端数据传输。将 Spring MVC 与 JSON 整合,可以实现高效、灵活的 Web 服务。 在 Spring MVC 中集成 JSON 的过程...