zoukankan      html  css  js  c++  java
  • 后端——框架——视图层框架——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>
  • 相关阅读:
    用它,只需“拖拉拽”即可轻松创建APP和短信推送规则
    如何通过机智云接口生成设备对应的二维码
    新唐方案分享:基于NUC472开发板的物联网开发,接入机智云
    公告|苹果iOS13升级在即,机智云APP适配指南
    物联网中的数据透传
    多维数组
    pymysql库的学习
    selenium库的学习
    xpath语法和lxml库的学习
    MATLAB 机场价格数据预处理和分析
  • 原文地址:https://www.cnblogs.com/rain144576/p/12903007.html
Copyright © 2011-2022 走看看