zoukankan      html  css  js  c++  java
  • spring mvc 返回xml格式数据

    1.问题 : 因为业务需要,需要发送xml格式的数据,使用spring mvc 自己解析,就不用费心去自己搞这些东西.

    2.解决:

    新建一个实体类,直接在实体类中添加注解即可,如下:

    @XmlRootElement
    @XmlAccessorType(XmlAccessType.FIELD)
    public class XMlTestBean {
        @XmlElement
        @XmlCDATA
        private String username;
        @XmlElement
        private String password;
        @XmlElement
        private String name;
        
        public String getUsername() {
            return username;
        }
        public void setUsername(String username) {
            this.username = username;
        }
        public String getPassword() {
            return password;
        }
        public void setPassword(String password) {
            this.password = password;
        }
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
        @Override
        public String toString() {
            return "XMlTestBean [username=" + username + ", password=" + password + ", name=" + name + "]";
        }
        
        
    }

    类上方添加:

    @XmlRootElement
    @XmlAccessorType(XmlAccessType.FIELD)

    字段名添加:

    @XmlElement

    在controller类中返回即可:

    @Controller
    @RequestMapping("test")
    public class TestController {
        
        @RequestMapping("xml")
        @ResponseBody
        public XMlTestBean getTestXML(){
            XMlTestBean xml = new XMlTestBean();
            xml.setUsername("aa");
            xml.setPassword("bb");
            xml.setName("cc");
            return xml;
        }
        @RequestMapping("getXml")
        public void getXml(@RequestBody XMlTestBean xml){
            System.out.println(xml);
        }
        
    
    }

    结果:

    <?xml version="1.0" encoding="UTF-8"?>
    <xMlTestBean>
        <username>
            <![CDATA[aa]]>
        </username>
        <password>bb</password>
        <name>cc</name>
    </xMlTestBean>

    补充:@XmlCDATA注解的作用:可以让返回值中添加

    <![CDATA[]]>

     CDATA 区段,可以不被XML解析器解析,但是需要在pom.xml添加

    <dependency>
        <groupId>org.eclipse.persistence</groupId>
        <artifactId>eclipselink</artifactId>
        <version>2.5.0</version>
    </dependency>

    和在实体类的包下添加jaxb.properties文件,文件内容如下:

    javax.xml.bind.context.factory=org.eclipse.persistence.jaxb.JAXBContextFactory

    只是解决了问题,但是原理这些还不懂,Σ( ° △ °|||)︴,有机会再搞懂原理吧

  • 相关阅读:
    Android Shape画圆,矩形
    Android 图片平铺效果实现的3种方法
    threadid=1: thread exiting with uncaught exception (group=0x40db8930)
    Facebook 调试工具Stetho配置入门
    Exception in MessageQueue callback: handleReceiveCallback
    EditText 双击才能获取点击事件
    2011年中国(大陆)地级以上(含省直辖县)行政区划表
    Android 应用接入广点通统计API 方案
    Android常用工具类封装---SharedPreferencesUtil
    IIS上发布站点后URL重写失效的解决方法
  • 原文地址:https://www.cnblogs.com/lishuaiqi/p/9855282.html
Copyright © 2011-2022 走看看