前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >面试题回顾:Spring MVC 怎么使用xml传参?

面试题回顾:Spring MVC 怎么使用xml传参?

作者头像
索码理
发布2022-09-20 18:34:12
4000
发布2022-09-20 18:34:12
举报
文章被收录于专栏:索码理

Spring MVC 怎么使用xml传参?

这是我之前面试遇到的一个问题,由于一直都是使用JSON传参没用过xml传参,这个问题还真不知道。。。

所以今天学习记录一下。

xml传参主要有两个步骤:

1. 在controller方法的RequestMapping注解中限制接收类型为application/xml

2. 在controller方法的接收类上加XmlRootElement或者JacksonXmlRootElement注解

如果使用JacksonXmlRootElement注解要引入JacksonXmlRootElement相关依赖

代码语言:javascript
复制
<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注解

代码语言:javascript
复制
@Data
@XmlRootElement(name = "userList")
public class UserXmlDTO {
    private Long userId;

    private String userName;
}‍

2、新建xml以便CV使用

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>
<userList>
    <userId>1</userId>
    <userName>name</userName>
</userList>

3、新建controller进行测试 要把接收参数类型设置为MediaType.APPLICATION_XML_VALUE,使用@ResponseBody将返回值以xml的形式返回。

代码语言:javascript
复制
@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传参问题就解决了。

能力一般,水平有限,如有错误,请多指出。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-02-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 索码理 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档