- 浏览: 7979214 次
- 性别:
- 来自: 广州
-
文章分类
- 全部博客 (2425)
- 软件工程 (75)
- JAVA相关 (662)
- ajax/web相关 (351)
- 数据库相关/oracle (218)
- PHP (147)
- UNIX/LINUX/FREEBSD/solaris (118)
- 音乐探讨 (1)
- 闲话 (11)
- 网络安全等 (21)
- .NET (153)
- ROR和GOG (10)
- [网站分类]4.其他技术区 (181)
- 算法等 (7)
- [随笔分类]SOA (8)
- 收藏区 (71)
- 金融证券 (4)
- [网站分类]5.企业信息化 (3)
- c&c++学习 (1)
- 读书区 (11)
- 其它 (10)
- 收藏夹 (1)
- 设计模式 (1)
- FLEX (14)
- Android (98)
- 软件工程心理学系列 (4)
- HTML5 (6)
- C/C++ (0)
- 数据结构 (0)
- 书评 (3)
- python (17)
- NOSQL (10)
- MYSQL (85)
- java之各类测试 (18)
- nodejs (1)
- JAVA (1)
- neo4j (3)
- VUE (4)
- docker相关 (1)
最新评论
-
xiaobadi:
jacky~~~~~~~~~
推荐两个不错的mybatis GUI生成工具 -
masuweng:
(转)JAVA获得机器码的实现 -
albert0707:
有些扩展名为null
java 7中可以判断文件的contenttype了 -
albert0707:
非常感谢!!!!!!!!!
java 7中可以判断文件的contenttype了 -
zhangle:
https://zhuban.me竹板共享 - 高效便捷的文档 ...
一个不错的网络白板工具
在spring mvc中,大家对@responsebody,@requestbody用的比较多了,它们是可以自定义的
HttpMessageConverter接口提供了5个方法:
canRead:判断该转换器是否能将请求内容转换成Java对象
canWrite:判断该转换器是否可以将Java对象转换成返回内容
getSupportedMediaTypes:获得该转换器支持的MediaType类型
read:读取请求内容并转换成Java对象
write:将Java对象转换后写入返回内容
其中read和write方法的参数分别有有HttpInputMessage和HttpOutputMessage对象,这两个对象分别代表着一次Http通讯中的请求和响应部分,可以通过getBody方法获得对应的输入流和输出流。
其中read和write方法的参数分别有有HttpInputMessage和HttpOutputMessage对象,这两个对象分别代表着一次Http通讯中的请求和响应部分,可以通过getBody方法获得对应的输入流和输出流。
使用的时候,可以extends AbstractHttpMessageConverter就可以了,比如下面的例子:
演示使用js向spring mvc发送自定义格式的字符串(属性用-隔开),通过自定义的HttpMessageConverter自动转换成对象,然后通过HttpMessageConverter输出指定格式到浏览器
jsp页面
另外不错的参考文参考:
http://www.scienjus.com/custom-http-message-converter/
HttpMessageConverter接口提供了5个方法:
canRead:判断该转换器是否能将请求内容转换成Java对象
canWrite:判断该转换器是否可以将Java对象转换成返回内容
getSupportedMediaTypes:获得该转换器支持的MediaType类型
read:读取请求内容并转换成Java对象
write:将Java对象转换后写入返回内容
其中read和write方法的参数分别有有HttpInputMessage和HttpOutputMessage对象,这两个对象分别代表着一次Http通讯中的请求和响应部分,可以通过getBody方法获得对应的输入流和输出流。
其中read和write方法的参数分别有有HttpInputMessage和HttpOutputMessage对象,这两个对象分别代表着一次Http通讯中的请求和响应部分,可以通过getBody方法获得对应的输入流和输出流。
使用的时候,可以extends AbstractHttpMessageConverter就可以了,比如下面的例子:
演示使用js向spring mvc发送自定义格式的字符串(属性用-隔开),通过自定义的HttpMessageConverter自动转换成对象,然后通过HttpMessageConverter输出指定格式到浏览器
public class Person { private String firstName; private String lastName; 。。。。
public class WiselyMessageConverter extends AbstractHttpMessageConverter<Person> { //自定义媒体类型 public WiselyMessageConverter(){ super(new MediaType("application", "x-wisely", Charset.forName("UTF-8"))); } //从request里获得构造Person实例的数据 @Override protected Person readInternal(Class<? extends Person> clazz, HttpInputMessage inputMessage) throws IOException, HttpMessageNotReadableException { String temp = StreamUtils.copyToString(inputMessage.getBody(), Charset.forName("UTF-8")); String[] tempArr = temp.split("-"); return new Person(tempArr[0],tempArr[1]); } //只支持Person类 @Override protected boolean supports(Class<?> clazz) { return Person.class.isAssignableFrom(clazz); } //将person实例转换成你想要的字符串格式 @Override protected void writeInternal(Person person, HttpOutputMessage outputMessage) throws IOException, HttpMessageNotWritableException { String out = "hello:" +person.getFirstName() + "-" + person.getLastName(); outputMessage.getBody().write(out.getBytes()); } } 配置WiselyMessageConverter @Override public void extendMessageConverters(List<HttpMessageConverter<?>> converters) { WiselyMessageConverter converter = new WiselyMessageConverter(); converters.add(converter); }
@RequestMapping(value = "/convert", produces = { "application/x-wisely" }) public @ResponseBody Person convert(@RequestBody Person person) { return person; }
jsp页面
function req(){ $.ajax({ url: "convert", data: "wang-yunfei",//注意此处的格式 type:"POST", contentType:"application/x-wisely", success: function(data){ $("#resp").html(data); } }); }
另外不错的参考文参考:
http://www.scienjus.com/custom-http-message-converter/
发表评论
-
复习:强迫线程顺序执行方式
2019-01-03 23:42 1632方法1: 三个线程,t1,t2,t3,如果一定要按顺序执行, ... -
(转)不错的前后端处理异常的方法
2019-01-02 23:16 2037前言 在 Web 开发中, 我们经常会需要处理各种异常, 这是 ... -
info q的极客时间大咖说等资料下载
2018-08-15 08:40 3502info q的极客时间大咖说等资料下载,还有不少思维导图 链 ... -
CXF 客户端超时时间设置(非Spring配置方式)
2018-07-03 22:38 2258import org.apache.cxf.endpoint. ... -
(转)synchronized关键字画像:正确打开方式
2018-06-14 09:25 510https://mp.weixin.qq.com/s/b3Sx ... -
CountDownLatch的例子
2018-06-13 14:10 710public class StatsDemo { ... -
两道面试题,带你解析Java类加载机制
2018-06-12 16:29 637https://mp.weixin.qq.com/s/YTa0 ... -
Spring中获取request的几种方法,及其线程安全性分析
2018-06-11 09:03 690https://mp.weixin.qq.com/s/KeFJ ... -
内部类小结
2018-06-06 10:25 456https://mp.weixin.qq.com/s/hErv ... -
JVM虚拟机小结1
2018-06-04 20:43 5761 jps -l //列出详细的类名和进程ID 2)jps ... -
windows下自带命令行工具查看CPU资源情况等
2018-06-04 12:53 3128微软提供了不少命令行 ... -
(收藏)深入分析Java的序列化与反序列化
2018-05-30 15:21 637https://mp.weixin.qq.com/s/T2Bn ... -
apache common包中的序列化工具
2018-05-30 09:10 1860什么是序列化 我们的 ... -
JAVA8 JVM的变化: 元空间(Metaspace)
2018-05-24 22:30 986本文将会分享至今为至我收集的关于永久代(Permanent G ... -
(转)服务器性能指标(一)——负载(Load)分析及问题排查
2018-05-21 21:03 1401原创: Hollis Hollis 负载 ... -
(转)对象复用
2018-05-20 15:27 884public class Student { priv ... -
mapreduce中入门中要注意的几点
2018-05-06 08:59 695在 mapreduce中,比如有如下的词: I love b ... -
HDFS的基本操作
2018-05-02 21:47 956-mkdir 在HDFS创建目录 ... -
一个不错的开源工具类,专门用来解析日志头部的,好用
2018-05-02 20:00 789一个不错的开源工具类,专门用来解析日志头部的,好用。 http ... -
介绍个不错的RESTFUL MOCK的工具wiremock
2018-04-27 21:02 1923介绍个不错的RESTFUL MOCK的工具wiremock,地 ...
相关推荐
本文将深入探讨如何利用 Spring 3 MVC 中的 HttpMessageConverter 构建高效的 RESTful API。 1. **RESTful Web 服务基础** REST(Representational State Transfer)是一种软件架构风格,用于设计网络应用程序。它...
11. **验证**:Spring MVC 集成了 Bean Validation API,允许开发者对模型数据进行校验,通过 @Valid 注解和 ConstraintValidator 实现自定义验证规则。 12. **消息转换**:Spring MVC 提供了 HttpMessageConverter...
在Spring MVC框架中,开发Web应用时经常需要将对象转换为JSON格式的数据并返回给客户端。然而,在处理敏感数据时,我们可能希望对这些数据进行脱敏,即隐藏或替换某些字段,以保护用户隐私或者确保数据安全性。本文...
11. 处理JSON,Spring MVC提供了HttpMessageConverter来处理JSON数据。 12. 国际化支持,允许开发者构建支持多语言的应用程序。 13. 文件上传功能,可以处理用户上传的文件。 14. 使用拦截器进行请求预处理和后...
4. **配置问题**:在某些情况下,可能需要在Spring配置中显式注册`MappingJackson2HttpMessageConverter`,特别是当你使用的是较早版本的Spring,或者有自定义的转换器配置。例如: ```java @Configuration @...
为了返回JSON响应,只需在控制器方法中返回Java对象,Spring MVC会自动调用合适的HttpMessageConverter(如`MappingJackson2HttpMessageConverter`)将对象转换成JSON字符串,并设置响应内容类型为`application/json...
10. **消息转换器**:Spring MVC包含一系列的消息转换器,如StringHttpMessageConverter、Jackson的MappingJackson2HttpMessageConverter,它们负责将HTTP请求和响应转换为JSON、XML等格式。 在实际开发中,Spring ...
1. 自定义配置:在Spring的配置文件中,通过`<mvc:annotation-driven>`或`@EnableWebMvc`注解启用基于注解的配置,并自定义MessageConverter,将StringHttpMessageConverter的默认字符集改为UTF-8。但这种方法可能会...
在Spring MVC框架中,开发人员经常需要处理不同的数据交换格式,如XML和JSON,以便与客户端进行交互。这两种格式在Web应用中广泛用于传输数据,因为它们轻量级且易于解析。下面我们将深入探讨如何在Spring MVC中生成...
《Spring MVC 3.0实战指南》,参考《Spring 3.x企业应用开发实战》。 内容简介: 1、Spring MVC框架简介 2、HTTP请求地址映射 3、HTTP请求数据的绑定 4、数据转换、格式化、校验 5、数据模型控制 6、视图及解析器 7...
`MappingJackson2HttpMessageConverter`是Spring MVC中用于处理JSON数据的典型转换器。这个转换器依赖于Jackson库,能够将Java对象转换为JSON字符串,以及将JSON字符串解析为Java对象。在配置文件中,我们需要声明这...
13. **消息转换器**:Spring MVC 内置了多种消息转换器,如 StringHttpMessageConverter、MappingJackson2HttpMessageConverter,用于处理 JSON、XML 等格式的请求和响应。 14. **上传文件**:Spring MVC 提供了...
此外,Spring MVC 还提供了丰富的扩展点,使得开发者可以根据实际需求自定义各种功能,如错误处理、国际化支持等。这种高度的灵活性和强大的功能使得 Spring MVC 成为了构建企业级 Web 应用程序的首选框架之一。
默认情况下,Spring MVC 3.2已经包含了这些转换器,但你可以根据需求进行自定义配置。 ```xml <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"/> <bean class="org....
如果Spring MVC默认的`HttpMessageConverter`不能满足需求,可以自定义配置,添加自定义的转换器。例如,如果你需要支持特定的日期格式,可以创建一个自定义的`MappingJackson2HttpMessageConverter`并注册到Spring...
开发者可以通过自定义`@Configuration`类,配置Spring MVC的`HttpMessageConverters`,以满足特定的JSON转换需求。 在实际开发中,我们可能会遇到以下场景: 1. 使用`@RequestBody`注解解析请求体中的JSON数据,将...
Spring MVC 自带了多种消息转换器,如`HttpMessageConverter`,用于处理HTTP请求和响应之间的数据转换,如JSON、XML等格式。 9. **国际化与本地化** Spring MVC 支持基于HTTP请求头或session的国际化和本地化处理...
在现代Web应用开发中,Spring MVC作为Java领域最流行的MVC框架之一,为开发者提供了强大的功能,包括构建RESTful API。REST(Representational State Transfer)风格的架构设计是Web服务的一种理想模式,它强调资源...
《Spring MVC 3.0实战指南》,参考《Spring 3.x企业应用开发实战》。 内容简介: 1、Spring MVC框架简介 2、HTTP请求地址映射 3、HTTP请求数据的绑定 4、数据转换、格式化、校验 5、数据模型控制 6、视图及...
在 Spring MVC 中,请求地址映射是通过 `@RequestMapping` 注解完成的,它可以标注在类级别或方法级别。该注解支持多种 URL 表达式,包括标准的 URL、Ant 风格的 URL 和带 `{xxx}` 占位符的 URL。 #### Ant 风格的 ...