1.搭建SpringMVC+spring环境

2.web.xml,Springmvc-config.xml。springMVC提供了处理xml格式请求响应的HttpMessageConverter,springMVC默认使用Jaxb2RootElementHttpMessageConverter,通过

JAXB2读写XML消息,并将请求信息转换到注解XMLRootElement和XmlType作用的类中。

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <beans xmlns="http://www.springframework.org/schema/beans"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xmlns:mvc="http://www.springframework.org/schema/mvc"
  5. xmlns:context="http://www.springframework.org/schema/context"
  6. xsi:schemaLocation="
  7. http://www.springframework.org/schema/beans
  8. http://www.springframework.org/schema/beans/spring-beans-4.2.xsd
  9. http://www.springframework.org/schema/mvc
  10. http://www.springframework.org/schema/mvc/spring-mvc-4.2.xsd
  11. http://www.springframework.org/schema/context
  12. http://www.springframework.org/schema/context/spring-context-4.2.xsd">
  13.  
  14. <!-- spring可以自动去扫描base-pack下面的包或者子包下面的java文件,
  15. 如果扫描到有Spring的相关注解的类,则把这些类注册为Spring的bean -->
  16. <context:component-scan base-package="com.moon.controller"/>
  17. <!-- 设置配置方案 -->
  18. <mvc:annotation-driven/>
  19. <!-- 使用默认的Servlet来响应静态文件 -->
  20. <mvc:default-servlet-handler/>
  21.  
  22. <!-- 视图解析器 -->
  23. <bean id="viewResolver"
  24. class="org.springframework.web.servlet.view.InternalResourceViewResolver">
  25. <!-- 前缀 -->
  26. <property name="prefix">
  27. <value>/WEB-INF/content/</value>
  28. </property>
  29. <!-- 后缀 -->
  30. <property name="suffix">
  31. <value>.jsp</value>
  32. </property>
  33. </bean>
  34.  
  35. </beans>

3.实体类

  1. package com.moon.domain;
  2.  
  3. import javax.xml.bind.annotation.XmlRootElement;
  4.  
  5. import com.sun.xml.internal.txw2.annotation.XmlElement;
  6.  
  7. @XmlRootElement
  8. public class Book {
  9. private int id;
  10. private String author;
  11. private String name;
  12. public int getId() {
  13. return id;
  14. }
  15. @XmlElement
  16. public void setId(int id) {
  17. this.id = id;
  18. }
  19. public String getAuthor() {
  20. return author;
  21. }
  22. @XmlElement
  23. public void setAuthor(String author) {
  24. this.author = author;
  25. }
  26. public String getName() {
  27. return name;
  28. }
  29. @XmlElement
  30. public void setName(String name) {
  31. this.name = name;
  32. }
  33.  
  34. }

4.book.xml

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <book>
  3. <id>1</id>
  4. <name>balckmaba</name>
  5. <author>menbbo</author>
  6. </book>

5.controller层@Controllerpublic class BookController {

  1. //@RequestBody Book book会将传递的xml数据自动绑定到Book对象
  2. @RequestMapping(value="/sendxml",method=RequestMethod.POST)
  3. public void sendXml(@RequestBody Book book){
  4. System.out.println(book.getId());
  5. System.out.println(book.getAuthor());
  6. }
       

@RequestMapping(value="/readxml") //@ResponseBody会自动将Book对象转换成xml数据返回。
public @ResponseBody Book readXml() throws Exception{
//通过JAXBContext的newinstance方法,传入一个class就可以获得一个上下文
JAXBContext context = JAXBContext.newInstance(Book.class);
//创建一个unmarshaller对象
Unmarshaller unmarshaller = context.createUnmarshaller();
InputStream in = this.getClass().getResourceAsStream("/Book.xml");
//Unmarshaller对象的unmarshal方法可以将xml转换成java对象
Book book = (Book) unmarshaller.unmarshal(in);
return book;
}

  1.  

  

  1. }

6.view层

  1. <%@ page language="java" contentType="text/html; charset=utf-8"
  2. pageEncoding="utf-8"%>
  3. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  4. <html>
  5. <head>
  6. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  7. <title>Insert title here</title>
  8. <script type="text/javascript" src="js/jquery-1.11.0.min.js"></script>
  9. <script type="text/javascript" src="js/json2.js"></script>
  10. <script type="text/javascript">
  11. $(document).ready(function(){
  12. sendXml();
          readXml();
  13. });
  14. function sendXml(){
  15. var xmlData = "<?xml version=\"1.0\" encoding=\"UTF-8\"?><book><id>1</id><name>crazy</name><author>menbbo</author> </book>";
  16. $.ajax( "${pageContext.request.contextPath}/sendxml",
  17. {
  18. type:"POST",
  19. contentType:"application/xml",
  20. data:xmlData,
  21. async:true
  22. }
  23.  
  24. );
  25. }

function readXml(){
$.ajax("${pageContext.request.contextPath}/readxml",
{
//dataType:"text",

type:"POST",
contentType:"application/xml",
success:function(data){
var id = $("id",data).text();
var name = $("name",data).text();
var author = $("author",data).text();
$("#id").html(id);
$("#name").html(name);
$("#author").html(author);
},
error:function(XMLHttpRequest, textStatus, errorThrown){
alert(XMLHttpRequest.status);
alert(XMLHttpRequest.readyState);
alert(textStatus);
}
}
);
}

  1. </script>
  2. </head>
  3. <body>
  4.  
  5. </body>
  6. </html>

SpringMVC处理XML格式的数据的更多相关文章

  1. xml格式的数据转化成数组

    将得到的xml格式的数据转化成数组 <?php //构造xml $url = "http://api.map.baidu.com/telematics/v3/weather?locat ...

  2. C#操作数据表中XML格式的数据

    以前还真没有见过数据表中存储XML格式的数据,刚开始听说的时候,还以为是数据表中有XML的字段类型, 再了解,其实也就是字符串类型的,只不过字符串的格式是XML格式的.确实孤陋寡闻!汗... (可添加 ...

  3. 如何在JSP页面里面显示xml格式的数据

    正常情况下,在jsp页面里的标签里写xml格式的数据,在浏览器里面的页面里显示出来的是乱码. 为什么会显示乱码呢?原来xml标签在jsp里会被解析为浏览器对象,因为xml最开始被设计出来是 为了写网页 ...

  4. scrapy 解析xml格式的数据

    XMLFeedSpider 主要用于 解析 xml格式的数据 创建一个scrapy 项目文件 scrapy startproject xxx 创建一个spider scrapy genspider - ...

  5. Asp.net Core WebApi 支持json/xml格式的数据返回

    Asp.net core 在做webapi项目的时候,默认是只返回json格式的数据的,如果想要开启xml数据返回,需要在startup里配置如下: public void ConfigureServ ...

  6. dynamic解析Http xml格式响应数据

    继续上一篇 构建RESTful风格的WCF服务 ,咱已经把服务端的数据和服务准备好了,客户端调用 wcf rest接口后如何解析xml?下面使用dynamic关键字解析来至于WCF REST XML响 ...

  7. 关于java后台如何接收xml格式的数据

    业务场景:用户发送下单请求,格式为xml格式,服务器接收数据完成下单,并返回结果给客户. 请求格式: <request> <head> <sign></sig ...

  8. JAVA 读取xml格式的数据

    <?xml version="1.0" encoding="UTF-8"?> <column-enums> <type name= ...

  9. springmvc返回xml格式、json格式数据

    问:@ResponseBody注解怎么指定返回xml 还是json答:@RequestMapping 的produces 属性指定 produces = "application/xml&q ...

随机推荐

  1. 后台获取用户登录token 和获取前端参数方法

    //获取request请求中所有参数 Enumeration<String> names = request.getParameterNames(); HashMap<String, ...

  2. Codeforces1062D. Fun with Integers(埃氏筛)

    题目链接:传送门 题目: D. Fun with Integers time limit per test seconds memory limit per test megabytes input ...

  3. alert大法看执行流程(一次采坑)

    页面的dom元素加载完了,给元素一次性添加事件. 收获:事件都是一次性给添加好的,不是点击一次,................................................... ...

  4. C#软件开发实例.私人订制自己的屏幕截图工具(九)使用自己定义光标,QQ截图时的光标

    版权声明:本文为 testcs_dn(微wx笑) 原创文章,非商用自由转载-保持署名-注明出处,谢谢. https://blog.csdn.net/testcs_dn/article/details/ ...

  5. Golang 之 interface接口全面理解

    什么是interface 在面向对象编程中,可以这么说:“接口定义了对象的行为”, 那么具体的实现行为就取决于对象了. 在Go中,接口是一组方法签名(声明的是一组方法的集合).当一个类型为接口中的所有 ...

  6. Http协议基础及发展历史

    一.网络分层协议 经典五层模型 1.物理层:(电脑的硬件,网卡端口,网线,网线连出去的光缆) 定义物理设备如何传输数据 2.数据链路层 在通信的实体间建立数据链路连接. 两台机器物理上是可以连接在一起 ...

  7. .NET WebService 入门

    以 前写博客最主要的就是不知道写什么东西,现在感觉能写点东西,就是感觉博客随笔的标题挺难取的,最近工作中刚好用到了WebService,刚好可以写一 篇博客.去年工作的时候自己也用到过,只是知道调用一 ...

  8. windows7 64位安装tensorflow 1.4.0 CPU版本

    机器学习和深度学习真是新生代的宠儿,我也被安排来搞这个了,这下是真的从0开始了.看了几天ppt,想跑跑代码试试,装个环境. 都说tensorflow很火很好用,反正我什么也不懂,准备把这些框架一个一个 ...

  9. jmeter配置脚本录制进行抓包并快速分析、定位接口问题

    对于测试人员.开发人员来说,善用抓包工具确实是快速分析和定位问题的一大必备神技,现将配置过程记录如下: 1.打开jmeter后,首先添加一个线程组: 2.线程组可以重新命名按项目名称分类 3.然后在工 ...

  10. 【剑指offer】反转链表

    输入一个链表,反转链表后,输出新链表的表头. *与之前的问题不同,这里需要修改链表的指向(之前的问题,不需要修改结点的指针,只需使用栈保存每个结点的值) *注意非空处理以及最后一个结点指针的修改 /* ...