1.搭建SpringMVC+spring环境

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

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

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.2.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-4.2.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-4.2.xsd"> <!-- spring可以自动去扫描base-pack下面的包或者子包下面的java文件,
如果扫描到有Spring的相关注解的类,则把这些类注册为Spring的bean -->
<context:component-scan base-package="com.moon.controller"/>
<!-- 设置配置方案 -->
<mvc:annotation-driven/>
<!-- 使用默认的Servlet来响应静态文件 -->
<mvc:default-servlet-handler/> <!-- 视图解析器 -->
<bean id="viewResolver"
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<!-- 前缀 -->
<property name="prefix">
<value>/WEB-INF/content/</value>
</property>
<!-- 后缀 -->
<property name="suffix">
<value>.jsp</value>
</property>
</bean> </beans>

3.实体类

package com.moon.domain;

import javax.xml.bind.annotation.XmlRootElement;

import com.sun.xml.internal.txw2.annotation.XmlElement;

@XmlRootElement
public class Book {
private int id;
private String author;
private String name;
public int getId() {
return id;
}
@XmlElement
public void setId(int id) {
this.id = id;
}
public String getAuthor() {
return author;
}
@XmlElement
public void setAuthor(String author) {
this.author = author;
}
public String getName() {
return name;
}
@XmlElement
public void setName(String name) {
this.name = name;
} }

4.book.xml

<?xml version="1.0" encoding="UTF-8"?>
<book>
<id>1</id>
<name>balckmaba</name>
<author>menbbo</author>
</book>

5.controller层@Controllerpublic class BookController {

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

@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;
}

 

  

}

6.view层

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

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);
}
}
);
}

</script>
</head>
<body> </body>
</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. mission 01

    A.自己目前在专业能力上的短板,及打算如何弥补. answer:由于在课本中所学的知识是死板的,加上不知如何课外提高自己在专业上的实践应用能力,所以我认为我在专业能力上的短板是缺乏将所掌握的知识应用到 ...

  2. CSVN配置自动备份策略

    在浏览器中登录CSVN管理页面,登录地址就是ip:3343,版本库->backup schedule ,选择type of job(备份类型),when to run(备份频率和时间),numb ...

  3. yuan先生博客链接

    Yuan先生的博客网址   1 Web应用  https://www.cnblogs.com/yuanchenqi/articles/8869302.html 2 http协议 https://www ...

  4. 用变量替换指定的字符串,sed: -e 表达式 #1, 字符 29: “s”的未知选项

    在shell脚本里,使用sed,然后用变量替换指定的字符串,一直出现这个错误:但是单独运行在外面可以 把分隔符/替换成#就可以: sed "s#revision=.*#revision=$s ...

  5. PhpAdmin支持登录远程数据库服务器

    转载:http://www.cnblogs.com/andydao/p/4227312.html 该数据,百度搜不到,Google1分钟搞定 一.如何设置phpMyAdmin自动登录? 首先在根目录找 ...

  6. 织梦Dedecms文件目录结构

    Dedecms文件目录结构 /根目录 ../a 默认生成文件存放目录 ../data 系统缓存或其他可写入数据存放目录 ../dede 默认后台登录管理(可任意改名) ../images 系统默认的部 ...

  7. CentOS 7安装php

    我们已经在上一篇里安装上了nginx:现在我们想要php(也许还包括mysql). (CentOS 7里使用mariadb替代了mysql) # yum install mariadb-client ...

  8. windows环境python2.7安装MySQLdb

    我电脑是64位,并且安装python不是默认路径,使用pip和mysql-python的exe文件安装都失败了. 后在网上找到一种安装方法,记录下. 确保安装了wheel,我的2.7默认安装了 pip ...

  9. .net core 中间件实战

    1.新建一个ASP.NET Core Web Application项目,选择空模板. 2.新建一个类RequestIPMiddleware.cs using Microsoft.AspNetCore ...

  10. pt-table-checksum校验与pt-table-sync修复数据

    1:下载工具包 登录网站下载相应的工具包 https://www.percona.com/downloads/percona-toolkit/LATEST/ 2:安装 (1)yum安装: sudo y ...