SpringMVC接收xml/json参数的demo

一.请求方


    
    
    3
    
    
    
    
    
    9
    

2.服务器

1.封装bean类

@XmlRootElement(name="xml")
public class BundingBean {       //
	private String toUserName; 	//	是 	接收方(公众号)的user name
	private String fromUserName; //	是 	发送方(微信用户)的user name
	private String createTime; 	//	是 	消息创建时间,消息后台生成
	private String msgType;		//是 	消息类型:device_event
	private 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层

@Controller
public 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的根是,所以要在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类上加注解了





你可能感兴趣的:([web]服务端)