前言:
现在咱们对“controller接收xml报文”大概比较着重,兄弟们都想要了解一些“controller接收xml报文”的相关知识。那么小编在网络上收集了一些有关“controller接收xml报文””的相关内容,希望咱们能喜欢,姐妹们快快来了解一下吧!Spring MVC 怎么使用xml传参?这是我之前面试遇到的一个问题,由于一直都是使用JSON传参没用过xml传参,这个问题还真不知道。。。 所以今天学习记录一下。 xml传参主要有两个步骤: 1、在controller方法的RequestMapping注解中限制接收类型为application/xml 2、在controller方法的接收类上加XmlRootElement或者JacksonXmlRootElement注解
如果使用JacksonXmlRootElement注解要引入JacksonXmlRootElement相关依赖
<dependency> <groupId>com.fasterxml.jackson.dataformat</groupId> <artifactId>jackson-dataformat-xml</artifactId> <version>2.13.1</version></dependency>
这里只使用XmlRootElement注解测试,感兴趣的可以试试JacksonXmlRootElement注解测试。
示例:
1、新建一个pojo对象用于接收参数 @XmlRootElement注解的name对应着xml中根节点的名字, javax.xml.bind.annotation包下有很多注解,如果遇到问题可以去看看源码,说不定哪个注解就能解决你的问题了呢。 如果使用jackson-dataformat-xml的话XmlRootElement注解就要换成JacksonXmlRootElement注解,
@Data@XmlRootElement(name = "userList")public class UserXmlDTO { private Long userId; private String userName;}
2、新建xml以便CV使用
<?xml version="1.0" encoding="UTF-8"?><userList> <userId>1</userId> <userName>name</userName></userList>
3、新建controller进行测试 要把接收参数类型设置为MediaType.APPLICATION_XML_VALUE,使用@ResponseBody将返回值以xml的形式返回。
@Controller@RequestMapping("/test")public class TestController { @PostMapping(value= "testXmlParam" , consumes = MediaType.APPLICATION_XML_VALUE , produces = MediaType.APPLICATION_XML_VALUE) @ResponseBody public UserXmlDTO testXmlParam(@RequestBody UserXmlDTO userXmlDTO){ System.out.println(userXmlDTO); return userXmlDTO; }}
4、通过postman进行测试
Spring MVC 使用xml传参问题就解决了。
能力一般,水平有限,如有错误,请多指出。 如果对你有用点个关注给个赞呗
❝
更多文章可以关注一下我的微信公众号suncodernote
❞
标签: #controller接收xml报文