url参数 转java对象_如何让Spring MVC接收的参数可以转换为java对象

场景:

web.xml中增加了一个DispatcherServlet配置,并在同级目录下添加了**-servlert.xml文件,搭建起了一个spring mvc的restful访问接口。

问题描述:

Controller的@RequestBody,

如果参数定义类型为String,则可以获取到数据;

如果参数定义类型为其他java对象,就接收不到。

下面记录完整的解决方法:

1. web.xml

contextConfigLocation

classpath:applicatonContext.xml

rest

org.springframework.web.servlet.DispatcherServlet

contextConfigLocation

/WEB-INF/rest-servlet.xml

1

rest

/rest/*

2. rest-servlet.xml

http://www.springframework.org/schema/beans/spring-beans-3.0.xsd

http://www.springframework.org/schema/context

http://www.springframework.org/schema/context/spring-context-3.0.xsd

http://www.springframework.org/schema/mvc

http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd">

3. applicatonContext.xml

添加如下的一段配置:

作用:指定json类型参数的转换器,可将接收到的json类型的参数,封装为java对象。(去掉这个配置就会报错)

application/json;charset=UTF-8

4. pom.xml

添加三个jackson依赖jar包。(spring MVC的jar,也需添加依赖,此处不描述)

作用:spring mvc底层解析json成java类,用的就是jsckson的jar包,不依赖它肯定也是无法成功解析的啦。

com.fasterxml.jackson.core

jackson-databind

2.4.1

org.codehaus.jackson

jackson-core-lgpl

1.8.1

org.codehaus.jackson

jackson-mapper-lgpl

1.8.1

5. Controller的方法

指定接收参数类型为application/json。(我把这个指定去掉也正确接收了,还是加上吧)

@RequestMapping(value = "/test", method = RequestMethod.POST, consumes = "application/json")public@ResponseBody RequestResult test(@RequestBody User user) {//....

}

至此,@RequestBody就可以正确的接收到参数了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值