• 后端——框架——视图层框架——spring_mvc——《官网》阅读笔记——第一章节21(核心对象,视图解析器,XML)


    1、概念

    表示返回的内容为XML,它依赖于J2XB技术,这是标准的Java API,自带的。

    Controller的Handler方法返回值不是viewName,而是MarshallingView对象实例。

    2、使用

    2.1     MarshallingView

    当返回值MarshallingView对象时,使用的步骤如下:

    1. 第一步,编写实体类,添加J2XB相关的注解
    2. 第二步,在hanlder方法中建立Jaxb2Marshaller与实体对象之间的关系
    3. 第三步,在handler方法中建立Jaxb2Marshaller与MarshallingView之间的关系。

    2.2     配置

    与JSON的配置类似,,它的使用步骤如下:

    1. 第一步,配置响应内容类型,调用configureContentNegotiation。
    2. 第二步,配置HttpMessageConverter。需要引入jackson-dataformat-xml架包
    3. 第三步,验证,返回任意的实体对象。

    3、示例

      直接向responseBody写Xml字符串的示例省略。

      通过配置方式将实体对象转换为xml的示例省略,与Json的唯一区别是HttpMessageConverter的实现类不同

      下述是handler方法返回MarshallingView对象的示例

      1、第一步,编写实体类,添加J2XB相关的注解

    @XmlRootElement
    @Getter
    @Setter
    public class User {
    	// 姓名
    	private String name;
    	// 年龄
    	private int age;
    }
    

      2、第二步,编写handler方法,建立MarshallingView,Jaxb2Marshaller,实体类之间的关系。它的返回值为MarshallingView

    @GetMapping("/xml")
    public MarshallingView getUserByXml(@ModelAttribute User user) {
    	Jaxb2Marshaller marshaller = new Jaxb2Marshaller();
    	marshaller.setClassesToBeBound(User.class);
    
    	MarshallingView view = new MarshallingView();
    	view.setMarshaller(marshaller);
    	return view;
    }
    

      MarshallingView设置marshaller属性的值为Jaxb2Marshaller,Jaxb2Marshaller用于解析实体对象。

      3、验证,发现返回结果为解析实体对象的结果。

    <ResponseEntity>
    	<code>200</code>
    	<message>some message</message>
    	<data>
    		<name>Jack</name>
    		<age>10</age>
    	</data>
    </ResponseEntity>
  • 相关阅读:
    机器学习--多层感知机(2)
    机器学习-感知机实现(1)
    特殊的反转单链表算法(C++)
    openCV 2.4.13 iOS background_segm.hpp 'list' file not found
    UAF漏洞--iOS是越狱原理
    机器学习--线性回归的实践
    机器学习--梯度下降
    机器学习--基础知识复习(模式识别,成本函数)
    机器学习:从入门到沉迷之机器的思考方式
    整整十年 - Agent Framework for TypeScript 2.0
  • 原文地址:https://www.cnblogs.com/rain144576/p/12903007.html
Copyright © 2020-2023  润新知