1. 程式人生 > >SpringMVC接收XML格式的數據

SpringMVC接收XML格式的數據

handle his ffi pre path 數據 let pack instance

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>

SpringMVC接收XML格式的數據