SpringMVC接收xml/json参数的demo

来源:互联网 发布:如何在手机上编程 编辑:程序博客网 时间:2024/06/04 14:07

一.请求方

<xml>    <toUserName><![CDATA[1]]></toUserName>    <fromUserName><![CDATA[2]]></fromUserName>    <createTime>3</createTime>    <msgType><![CDATA[4]]></msgType>    <event><![CDATA[5]]></event>    <deviceType><![CDATA[6]]></deviceType>    <deviceID><![CDATA[7]]></deviceID>    <content><![CDATA[8]]></content>    <sessionID>9</sessionID>    <openID><![CDATA[10]]></openID></xml>

2.服务器

1.封装bean类

@XmlRootElement(name="xml")public class BundingBean {       //private String toUserName; //是 接收方(公众号)的user nameprivate String fromUserName; //是 发送方(微信用户)的user nameprivate String createTime; //是 消息创建时间,消息后台生成private String msgType;//是 消息类型:device_eventprivate String event;//是 事件类型,取值为bind/unbind bind:绑定设备 unbind:解除绑定private String deviceType; //是 设备类型,目前为“公众账号原始ID”private String eeviceID; //是 设备ID,第三方提供private String content; //是 当Event为bind时,Content字段存放二维码中// 第三方追加的自定义的数据// 详情见1.5章节 获取设备二维码// 或 1.11.1章节 API:获取deviceid和二维码private String sessionID; // 是 微信客户端生成的session id,用于request和response对应,//因此响应中该字段第三方需要原封不变的带回private String openID; //是  微信账号的OpenID         getter/setter/toString}

2.controller层

@Controllerpublic class GongzhongController { @RequestMapping(value="/xmlPrase", headers = {"content-type=application/xml"})     public void addUser(@RequestBody BundingBean xml) { System.out.println(xml);     } }


3.结果

 System.out.println(xml);的结果是:BundingBean [toUserName=1, fromUserName=2, createTime=3, msgType=4, event=5, deviceType=6, deviceID=7, content=8, sessionID=9, openID=10]这就封装到对象里面了.

4.需要注意的地方:

1.本xml的根是<xml>,所以要在bean的上方加注解是name=xml
@XmlRootElement(name="xml")
如果根是其他的,那么必须改成其他的

2.controller的注解是

 @RequestMapping(value="/xmlPrase", headers = {"content-type=application/xml"})
必须要注写是xml格式的数据,而且请求方也必须content-type=application/xml,那么才可以通过xmlPrase.action访问就可以封装到bean里了

3.json和这个类似,比葫芦画瓢即可,只是不需要bean类上加注解了





阅读全文
1 0