客户端以get或者post的形式发来一条json,如下:
{
'userId': 1,
'pager':
{
'pageNumber': 2,
'pageSize': 20
},
'lastRefreshTime': 1024
}
public @ResponseBody String list(@RequestBody int userId,
@RequestBody Page pager, @RequestBody long lastRefreshTime) {
但是收到400 Bad Request。
如何把这条json分解成多个对象?
如果传过来的参数很奇特,可以按自己的需要写一个org.springframework.web.method.support.HandlerMethodArgumentResolver的实现类。
并将实现类注入进org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter的customArgumentResolvers中。
或者...
<mvc:annotation-driven>
<mvc:argument-resolvers>
<bean class="com.kavlez.MyMethodArgumentResolver"/>
</mvc:argument-resolvers>
</mvc:annotation-driven>
你可以定义个一个Wrapper class.
Class WrapperClass{
private userId;
private Pager pager;
private Date lastRefreshTime;
...... //getter and setters
}
在Controller里,
public @ResponseBody String list(@RequestBody WrapperClass wrapperObj) {}
需要注意的是, Jackson-databind 需要在你的classpath中
用@RequestBody Object