java - Spring MVC如何分解json然后绑定参数?
阿神
阿神 2017-04-17 13:09:01
[Java讨论组]

客户端以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分解成多个对象?

阿神
阿神

闭关修行中......

全部回复(3)
高洛峰

如果传过来的参数很奇特,可以按自己的需要写一个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

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号