SpringMVC处理XML格式的数据
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格式的数据的更多相关文章
- xml格式的数据转化成数组
将得到的xml格式的数据转化成数组 <?php //构造xml $url = "http://api.map.baidu.com/telematics/v3/weather?locat ...
- C#操作数据表中XML格式的数据
以前还真没有见过数据表中存储XML格式的数据,刚开始听说的时候,还以为是数据表中有XML的字段类型, 再了解,其实也就是字符串类型的,只不过字符串的格式是XML格式的.确实孤陋寡闻!汗... (可添加 ...
- 如何在JSP页面里面显示xml格式的数据
正常情况下,在jsp页面里的标签里写xml格式的数据,在浏览器里面的页面里显示出来的是乱码. 为什么会显示乱码呢?原来xml标签在jsp里会被解析为浏览器对象,因为xml最开始被设计出来是 为了写网页 ...
- scrapy 解析xml格式的数据
XMLFeedSpider 主要用于 解析 xml格式的数据 创建一个scrapy 项目文件 scrapy startproject xxx 创建一个spider scrapy genspider - ...
- Asp.net Core WebApi 支持json/xml格式的数据返回
Asp.net core 在做webapi项目的时候,默认是只返回json格式的数据的,如果想要开启xml数据返回,需要在startup里配置如下: public void ConfigureServ ...
- dynamic解析Http xml格式响应数据
继续上一篇 构建RESTful风格的WCF服务 ,咱已经把服务端的数据和服务准备好了,客户端调用 wcf rest接口后如何解析xml?下面使用dynamic关键字解析来至于WCF REST XML响 ...
- 关于java后台如何接收xml格式的数据
业务场景:用户发送下单请求,格式为xml格式,服务器接收数据完成下单,并返回结果给客户. 请求格式: <request> <head> <sign></sig ...
- JAVA 读取xml格式的数据
<?xml version="1.0" encoding="UTF-8"?> <column-enums> <type name= ...
- springmvc返回xml格式、json格式数据
问:@ResponseBody注解怎么指定返回xml 还是json答:@RequestMapping 的produces 属性指定 produces = "application/xml&q ...
随机推荐
- 后台获取用户登录token 和获取前端参数方法
//获取request请求中所有参数 Enumeration<String> names = request.getParameterNames(); HashMap<String, ...
- Codeforces1062D. Fun with Integers(埃氏筛)
题目链接:传送门 题目: D. Fun with Integers time limit per test seconds memory limit per test megabytes input ...
- alert大法看执行流程(一次采坑)
页面的dom元素加载完了,给元素一次性添加事件. 收获:事件都是一次性给添加好的,不是点击一次,................................................... ...
- C#软件开发实例.私人订制自己的屏幕截图工具(九)使用自己定义光标,QQ截图时的光标
版权声明:本文为 testcs_dn(微wx笑) 原创文章,非商用自由转载-保持署名-注明出处,谢谢. https://blog.csdn.net/testcs_dn/article/details/ ...
- Golang 之 interface接口全面理解
什么是interface 在面向对象编程中,可以这么说:“接口定义了对象的行为”, 那么具体的实现行为就取决于对象了. 在Go中,接口是一组方法签名(声明的是一组方法的集合).当一个类型为接口中的所有 ...
- Http协议基础及发展历史
一.网络分层协议 经典五层模型 1.物理层:(电脑的硬件,网卡端口,网线,网线连出去的光缆) 定义物理设备如何传输数据 2.数据链路层 在通信的实体间建立数据链路连接. 两台机器物理上是可以连接在一起 ...
- .NET WebService 入门
以 前写博客最主要的就是不知道写什么东西,现在感觉能写点东西,就是感觉博客随笔的标题挺难取的,最近工作中刚好用到了WebService,刚好可以写一 篇博客.去年工作的时候自己也用到过,只是知道调用一 ...
- windows7 64位安装tensorflow 1.4.0 CPU版本
机器学习和深度学习真是新生代的宠儿,我也被安排来搞这个了,这下是真的从0开始了.看了几天ppt,想跑跑代码试试,装个环境. 都说tensorflow很火很好用,反正我什么也不懂,准备把这些框架一个一个 ...
- jmeter配置脚本录制进行抓包并快速分析、定位接口问题
对于测试人员.开发人员来说,善用抓包工具确实是快速分析和定位问题的一大必备神技,现将配置过程记录如下: 1.打开jmeter后,首先添加一个线程组: 2.线程组可以重新命名按项目名称分类 3.然后在工 ...
- 【剑指offer】反转链表
输入一个链表,反转链表后,输出新链表的表头. *与之前的问题不同,这里需要修改链表的指向(之前的问题,不需要修改结点的指针,只需使用栈保存每个结点的值) *注意非空处理以及最后一个结点指针的修改 /* ...