程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> JAVA綜合教程 >> springmvc 返回xml,springmvcxml

springmvc 返回xml,springmvcxml

編輯:JAVA綜合教程

springmvc 返回xml,springmvcxml


需求:

1、springmvc返回xml;

技術及環境:

實現:

spirngxml的配置主要如下:

添加項目依賴:

<dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-core</artifactId>
      <version>4.3.1.RELEASE</version>
    </dependency>
    <!-- https://mvnrepository.com/artifact/org.springframework/spring-beans -->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-beans</artifactId>
      <version>4.3.1.RELEASE</version>
    </dependency>
    <!-- https://mvnrepository.com/artifact/org.springframework/spring-context -->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-context</artifactId>
      <version>4.3.1.RELEASE</version>
    </dependency>
    <!-- https://mvnrepository.com/artifact/org.springframework/spring-web -->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-web</artifactId>
      <version>4.3.1.RELEASE</version>
    </dependency>
    <!-- https://mvnrepository.com/artifact/org.springframework/spring-webmvc -->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-webmvc</artifactId>
      <version>4.3.1.RELEASE</version>
    </dependency>

實體類JavaBean

一個簡單的JavaBean,添加了JAXB 注解,spring將會根據請求判斷轉換成xml。JAXB不需要添加額外的依賴庫,已經包含在jdk中。

BaseXmlResult 的作用是作為返回的標志和附加消息對象(如:操作成功!操作失敗等)。抽取出來,不用每個返回對象都寫code和message,只需要繼承即可。
XmlActionResult 為具體的要返回的信息的對象。前台頁面需要解析的數據。該對象中Data為泛型對象,返回時,可根據實際情況,設置Person.class|Man.class|Woman.class對象,若有其他對象,只需對注解進行調整即可,方便維護。


public class BaseXmlResult {

    protected String code;

    protected String message;

    public String getCode() {
        return code;
    }

    public void setCode(String code) {
        this.code = code;
    }

    public String getMessage() {
        return message;
    }

    public void setMessage(String message) {
        this.message = message;
    }
}
@XmlRootElement(name = "xml")
@XmlAccessorType(XmlAccessType.NONE)
public class XmlActionResult<T> extends BaseXmlResult{

    @XmlElements({
            @XmlElement(name="Person",type = Person.class),
            @XmlElement(name="Man",type = Man.class),
            @XmlElement(name="Woman",type = Woman.class)
    })
    private T data;

    public String getCode() {
        return code;
    }

    public void setCode(String code) {
        this.code = code;
    }

    public String getMessage() {
        return message;
    }

    public void setMessage(String message) {
        this.message = message;
    }

    public T getData() {
        return data;
    }

    public void setData(T data) {
        this.data = data;
    }

   
}
@XmlRootElement
@XmlAccessorType(XmlAccessType.NONE)
public class Person {

    @XmlElement
    private String name;
    @XmlElement
    private Integer sex;
    @XmlElement
    private Integer age;

    private Date birthday;

    public Person(String name, Integer sex, Integer age) {
        this.name = name;
        this.sex = sex;
        this.age = age;
    }

    public Person() {
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Integer getSex() {
        return sex;
    }

    public void setSex(Integer sex) {
        this.sex = sex;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")//json格式返回的日期格式化注解,日期格式json轉換默認是long類型的,如:144101141111111,格式化成yyyy-MM-dd HH:mm:ss格式
    public Date getBirthday() {
        return birthday;
    }

    public void setBirthday(Date birthday) {
        this.birthday = birthday;
    }
}

 

Controller類
@Controller
@RequestMapping("/mvc")
public class HelloController {

    @RequestMapping("/helloXmlPerson/{name}")
    @ResponseBody
    public XmlActionResult helloXmlPerson(@PathVariable("name") String name){
        XmlActionResult<Person> actionResult = new XmlActionResult<Person>();
        actionResult.setCode("123");
        actionResult.setMessage(name);
        Person person = new Person("xxxxx",1,32);

        actionResult.setData(person);
        return actionResult;
    }
}

spring配置文件中新增

 <mvc:annotation-driven/>
  

用於啟用@ResponseBody注解。

訪問對應得路徑後返回:

<xml> <code>123</code> <message>nihao</message> <Person> <name>xxxxx</name> <sex>1</sex> <age>32</age> </Person> </xml>

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved