Spring MVC 返回 xml 数据的配置方法

现在的应用程序流行采用返回 json 格式的数据,但如果时光倒流几年,恐怕返回比较多的是xml 格式的数据了,其实无论是json还是xml 说白了,都是文本文件,如果与java 程序结合,也就是序列化与反序列化的过程,采用不同的数据格式而已。有些老系通还是采用 XML 方式,所以有时候还是需要配置xml数据格式的. 这里就采用sprong 自带的包 spring-oxm.jar 里面提供的解析方法来处理。

当用户在浏览器地址栏输入.xml 后缀的时候返回xml 格式数据
当用户在浏览器地址输入.json 后缀的时候返回json 格式数据.



在spring-servlet.xml 里的配置如下:
程序代码 程序代码

<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:context="http://www.springframework.org/schema/context"
    xmlns:mvc="http://www.springframework.org/schema/mvc"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="
        http://www.springframework.org/schema/beans    
        http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
        http://www.springframework.org/schema/context
        http://www.springframework.org/schema/context/spring-context-3.0.xsd
        http://www.springframework.org/schema/mvc        
        http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd">
        
    <context:component-scan base-package="com.training.controller" />
    
    <mvc:annotation-driven />  
    
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix">
            <value>/WEB-INF/pages/</value>
        </property>
        <property name="suffix">
            <value>.jsp</value>
        </property>
    </bean>
    
    <bean class="org.springframework.web.servlet.view.BeanNameViewResolver" />
    
    <bean id="xmlViewer"
        class="org.springframework.web.servlet.view.xml.MarshallingView">
        <constructor-arg>
            <bean class="org.springframework.oxm.jaxb.Jaxb2Marshaller">
                <property name="classesToBeBound">
                    <list>
                        <value>com.training.model.User</value>
                    </list>
                </property>
            </bean>
        </constructor-arg>
    </bean>
    
</beans>


注意实体类的定义,在 java6 之后自带了jaxb, 所以直接这样定义
程序代码 程序代码

package com.training.model;

import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;

@XmlRootElement(name="user")
public class User {
    
    private int id;
    private String name;
    private String address;
    
    public int getId() {
        return id;
    }
    @XmlElement
    public void setId(int id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    
    @XmlElement
    public void setName(String name) {
        this.name = name;
    }
    public String getAddress() {
        return address;
    }
    @XmlElement
    public void setAddress(String address) {
        this.address = address;
    }    

}



controller 里的方法
程序代码 程序代码

    @RequestMapping(value="/users", method = RequestMethod.GET)
    public @ResponseBody User getUsers() {    
        //模拟从数据库中获得数据....        
            User user = new User();
            user.setId(1);
            user.setName("Name: aaa");
            user.setAddress("Address: bbb");
            return user;            
    }


运行程序,输入不同的url ,就能看到上面的图一样的效果。注意如果需要返回json格式数据,还需要jackson 相关的jar 包,可以参考这里: http://www.yihaomen.com/article/java/500.htm, 整个源代码,除去jar 包之后直接下载:
下载文件 Spring mvc return xml and json formate data


除非申明,文章均为一号门原创,转载请注明本文地址,谢谢!
文章来自: 本站原创
引用通告: 查看所有引用 | 我要引用此文章
Tags: spring mvc 返回 xml 数据的配置方法
相关日志:
评论: 0 | 引用: 0 | 查看次数: -
发表评论
昵 称:
密 码: 游客发言不需要密码.
内 容:
验证码: 验证码
选 项:
虽然发表评论不用注册,但是为了保护您的发言权,建议您注册帐号.