1、新建maven工程xml-bean-convert

pom.xml如下

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <project xmlns="http://maven.apache.org/POM/4.0.0"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  5. <modelVersion>4.0.0</modelVersion>
  6.  
  7. <groupId>xml.bean.convert</groupId>
  8. <artifactId>xml-bean-convert</artifactId>
  9. <version>1.0-SNAPSHOT</version>
  10. <parent>
  11. <groupId>org.springframework.boot</groupId>
  12. <artifactId>spring-boot-starter-parent</artifactId>
  13. <version>1.4.1.RELEASE</version>
  14. </parent>
  15. <dependencies>
  16. <dependency>
  17. <groupId>org.springframework.boot</groupId>
  18. <artifactId>spring-boot-starter-web</artifactId>
  19. </dependency>
  20. <dependency>
  21. <groupId>com.fasterxml.jackson.dataformat</groupId>
  22. <artifactId>jackson-dataformat-xml</artifactId>
  23. <version>2.9.8</version>
  24. </dependency>
  25. </dependencies>
  26.  
  27. </project>

红色加粗部分是xml和bean转换依赖的包

2、启动类

  1. @SpringBootApplication
  2. public class Application {
  3. public static void main(String[] args) throws Exception {
  4. SpringApplication.run(Application.class, args);
  5. }
  6. }

3、新建实体类,并添加xml和和bean转换的注解(注意,注解要写在get方法上)

  1. public class Student {
  2. private Integer id;
  3. private String stuName;
  4. private String sex;
  5.  
  6. @JacksonXmlProperty(isAttribute = true,localName = "STUDENT_ID")
  7. public Integer getId() {
  8. return id;
  9. }
  10.  
  11. public void setId(Integer id) {
  12. this.id = id;
  13. }
  14.  
  15. @JacksonXmlProperty(localName = "STUDENT_NAME")
  16. public String getStuName() {
  17. return stuName;
  18. }
  19.  
  20. public void setStuName(String stuName) {
  21. this.stuName = stuName;
  22. }
  23.  
  24. @JacksonXmlProperty(localName = "STUDENT_SEX")
  25. public String getSex() {
  26. return sex;
  27. }
  28.  
  29. public void setSex(String sex) {
  30. this.sex = sex;
  31. }
  32.  
  33. @Override
  34. public String toString() {
  35. return "Student{" +
  36. "id=" + id +
  37. ", stuName='" + stuName + '\'' +
  38. ", sex='" + sex + '\'' +
  39. '}';
  40. }
  41. }
  1. @JacksonXmlRootElement(localName ="MESSAGE")
  2. public class Teacher {
  3. private Integer id;
  4. private String teacherName;
  5. private List<Student> studentList;
  6.  
  7. @JacksonXmlProperty(isAttribute = true,localName = "TEACHER_ID")
  8. public Integer getId() {
  9. return id;
  10. }
  11.  
  12. public void setId(Integer id) {
  13. this.id = id;
  14. }
  15.  
  16. @JacksonXmlProperty(localName = "TEACHER_NAME")
  17. public String getTeacherName() {
  18. return teacherName;
  19. }
  20.  
  21. public void setTeacherName(String teacherName) {
  22. this.teacherName = teacherName;
  23. }
  24.  
  25. @JacksonXmlElementWrapper(localName ="STUDENT_LIST")
  26. @JacksonXmlProperty(localName ="STUDENT")
  27. public List<Student> getStudentList() {
  28. return studentList;
  29. }
  30.  
  31. public void setStudentList(List<Student> studentList) {
  32. this.studentList = studentList;
  33. }
  34.  
  35. @Override
  36. public String toString() {
  37. return "Teacher{" +
  38. "id=" + id +
  39. ", teacherName='" + teacherName + '\'' +
  40. ", studentList=" + studentList +
  41. '}';
  42. }
  43. }

4、写controller进行测试

  1. @RestController
  2. @RequestMapping("/teacher")
  3. public class TeacherController {
  4.  
  5. @RequestMapping(value = "/get-info",method = RequestMethod.GET, produces = "application/xml")
  6. @ResponseBody
  7. public Teacher getTest(){
  8. Student student1 = new Student();
  9. student1.setId(1);
  10. student1.setStuName("张三");
  11. student1.setSex("男");
  12. Student student2 = new Student();
  13. student2.setId(2);
  14. student2.setStuName("李四");
  15. student2.setSex("男");
  16. Teacher teacher = new Teacher();
  17. teacher.setId(11);
  18. teacher.setTeacherName("杨老师");
  19. teacher.setStudentList(Arrays.asList(student1,student2));
  20. return teacher;
  21. }
  22.  
  23. @RequestMapping(value = "/post-info",method = RequestMethod.POST, consumes = "application/xml")
  24. public void postTest(@RequestBody Teacher teacher){
  25. System.out.println("postman传过来的xml信息转换成实体类如下:==========");
  26. System.out.println(teacher.toString());
  27. }
  28. }

1)首先用postman测试返回xml

2)首先用postman测试用xml格式传参

springboot实现xml传参和返回值的更多相关文章

  1. arm汇编进入C函数分析,C函数压栈,出栈,传参,返回值

    环境及代码介绍 环境和源码 由于有时候要透彻的理解C里面的一些细节问题,所有有必要看看汇编,首先这一切的开始就是从汇编代码进入C的main函数过程.这里不使用编译器自动生成的这部分汇编代码,因为编译器 ...

  2. python函数传参和返回值注意事项

    函数传参 空参数 定义函数时括号里面没有形参,调用时不用传参. def func(): print('null para.') # 调用 func() 位置传参 规定形参的数量,调用时必须传递相同数量 ...

  3. 深入理解PHP内核(十二)函数-函数的定义、传参及返回值

    原文链接:http://www.orlion.ga/344/ 一.函数的定义 用户函数的定义从function 关键字开始,如下 function foo($var) {    echo $var; ...

  4. 深入理解PHP内核(六)函数的定义、传参及返回值

    一.函数的定义 用户函数的定义从function 关键字开始,如下 function foo($var) { echo $var; } 1.词法分析 在Zend/zend_language_scann ...

  5. winform访问url传参有返回值

    using System;using System.Collections.Generic;using System.IO;using System.Linq;using System.Net;usi ...

  6. js 页面之间的跳转、传参以及返回上一页

    js实现html 页面之间的跳转传参以及返回上一页的相关知识点 一.页面之间的跳转传参 1.在页面之间跳转的方式有两种: window.location.href="test.html?nu ...

  7. 065 01 Android 零基础入门 01 Java基础语法 08 Java方法 02 带参无返回值方法

    065 01 Android 零基础入门 01 Java基础语法 08 Java方法 03 带参无返回值方法 本文知识点:带参无返回值方法 说明:因为时间紧张,本人写博客过程中只是对知识点的关键步骤进 ...

  8. 慕课网-Java入门第一季-7-3 Java 中无参带返回值方法的使用

    来源:http://www.imooc.com/code/1579 如果方法不包含参数,但有返回值,我们称为无参带返回值的方法. 例如:下面的代码,定义了一个方法名为 calSum ,无参数,但返回值 ...

  9. 慕课网-Java入门第一季-7-2 Java 中无参无返回值方法的使用

    来源:http://www.imooc.com/code/1578 如果方法不包含参数,且没有返回值,我们称为无参无返回值的方法. 方法的使用分两步: 第一步,定义方法 例如:下面代码定义了一个方法名 ...

随机推荐

  1. 【jquery】checkbox

    jquery操作checkbox 模拟选中: $('#aaa').prop('checked', true); 模拟取消选中: $('#aaa').prop('checked', false); 其它 ...

  2. f5冗余BIG-IP系统的安装

    1.设备服务群集 •一个系列的BIG-Ips彼此互相支持DSC •每一台BIG-IP 自己生成一个Device Object •不同设备的信息 •建立信任证书 •在local device上设置Dev ...

  3. php新增的一些特性

    php新增的特性,只是略微整理,并不完全. 一.php5.3添加的新特性 1.?:简化的三元运算符 <?php $cur = $cur ? $cur : 1; $cur = $cur ?: 1; ...

  4. Three.js 对模型多个动画切换展示(fbx)

    来源 :https://blog.csdn.net/qq_30100043/article/details/80087471 简介 上一节本想直接了结动画这一章.最后一想,没有做过模型动画切换的案例. ...

  5. IE7下面踩得坑

    bug1.position:fixed:z-index:99; 出现了z-index:2的层级跑到他上面了, 为什么?会出现这问题??? 检查: 1你的固定定位的容器是不是被其他容器包裹,你包裹得容器 ...

  6. 9.26 H5日记

    9.26 1.新的背景属性,background-position background-position有两个值,水平和垂直,单位px ❤在html和CSS当中,有三个属性可以向服务器发送请求,分别 ...

  7. eclipse中查找某一个字符串

    想要完全匹配查找一个字符串,如iCard,而iCardSys或iiCard这种都不行,可以用正则表达式来查找,如下: 参考链接:http://blog.csdn.net/u014656992/arti ...

  8. swift 中使用weak self

    request.responseString(encoding: NSUTF8StringEncoding) {[weak self] (res) -> Void in if let stron ...

  9. Memcache类

    class Memcache{ private static $mem = null; public function mem_create(){ self::$mem = new \Memcache ...

  10. filedisk.sys

    i386 amd http://blog.sina.com.cn/s/blog_4fcd1ea30100r19r.html