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.controller层

@Controller
public 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());
    }
}

5.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();
    });
    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
                }

        );
    }

</script>
</head>
<body>

</body>
</html>

原文地址:https://www.cnblogs.com/menbo/p/10311791.html

时间: 2024-10-28 15:04:29

SpringMVC接收XML格式的数据的相关文章

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

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

使用原生AJAX和PHP 构建和解析XML格式的数据

XML:eXtensible Markup Language,可扩展的标签语言,本身是一种字符串格式,用于描述批量复合数据, 语法特点:  (1)所有的数据放在标签中 (2)整个XML字符串有且只能有一个根标签 (3)所有的标签名都可以自定义,但严格区分大小写,且开始和结束标记必须完全一样 (4)每个标签都可以自定义属性,属性必须有值,值必须用单引号/双引号括起来 (5)每个标签都可以定义任意的子标签,标签可以嵌套,但不能交叉 注意:HTML和XML的区别 HTML语法随意:XML语法严格: H

WebService 返回json格式和返回xml格式的数据

返回json格式 //using System.Web.Script.Services; [WebMethod] [ScriptMethod(UseHttpGet = true, ResponseFormat = ResponseFormat.Json)] public void HelloWorld() { Context.Response.Clear(); Context.Response.ContentType = "application/json"; Model.User.U

PHP接收JSON格式的数据

在API服务中,目前流行采用json形式来交互. 给前端调用的接口输出Json数据,这个比较简单,只需要组织好数据,用json_encode($array) 转化一下,前端就得到json格式的数据. 接收前端提交的json数据稍微复杂一点,原因是:PHP默认识别的数据类型是application/x-www.form-urlencoded标准的数据类型.因此,对型如text/xml 或者 soap 或者 application/octet-stream 和application/json格式之类

数据存储-自定义Json串写入文件与XML格式读取数据

数据存储总的来说有三种方式 1>,数据库 2>,文件 3>,网络 在这里我介绍的是Json格式与XML格式的文件存储 先说说常用的文件存储数据的格式 1>,Json格式 2>,XML格式 这俩种格式我觉得区别的话应该是Json适合存储小数据,XML适合存储大数据 在cocos2d-x中,如果我们要用Json首先我们要先导入一个Json库:libjson demo如下: 要添加libjson头文件 创建Json格式的数据: 这里用JSONNode,定义一个父节点n,再定义一个节

C#中使用XmlDocument类来创建和修改XML格式的数据文件

通过XmlDocument类修改XML文档数据,通常需要以下几个主要步骤或其中几个步骤. (1)获取一个包含XML文档数据的XmlDocument类对象,通常有两种方法来实现这个功能: 通过XmlDocument类的构造函数创建不包含任何结点的空对象,常用默认构造函数. (2)通过XmlDocument类的ChildNodes和Item属性获取某个结点(XmlNode类型),通过XmlNode的Name.Value.InnerText等属性修改选中结点的数据. (3)通过XmlDocument类

用Ajax读取XML格式的数据

<script type="text/javascript">var xmlHttp; function createXMLHttpRequest(){if(window.ActiveXObject){xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");}else if(window.XMLHttpRequest){xmlHttp = new XMLHttpRequest();}} function star

Controller接收处理json、xml格式数据

1.RequestBody接收json格式的数据,并直接转为对象. User.java使用lombok依赖包 @Data @AllArgsConstructor @NoArgsConstructor @ToString public class User{ private int id; private String name; } UserController.java @Controller public class UserController { @GetMapping("/testJs

使用jackson转换xml格式数据进行响应

最近在做微信扫码支付的功能,按照微信开发文档与支付平台进行数据交互只能使用XML格式的数据,调用别人定义的接口就需要按规则来嘛,没办法.自己之前使用jackson,主要是因为SpringMVC默认将jackson作为数据转换的工具,而且默认也是以JSON格式进行处理的,之前本人使用过XStream将数据转换为XML格式,想着jackson应该也可以做这件事,有个produces属性可以指定响应的数据格式 @PostMapping(value = "/wx/notify", produc