springMVC整合xStream

一. 简单介绍:

xStream能够轻易的将Java对象转换成xml、JSON。本篇博客将使用springMVC整合利用xStream转换xml。

关于xStream使用的博文:http://blog.csdn.net/zdp072/article/details/39054197

二. 实例:

1. 代码结构图:

2. 实体类:

(1)Account

public class Account {
    private int id;
    private String name;
    private String email;
    private String address;
    private Birthday birthday;

    // getter and setter

    @Override
    public String toString() {
        return this.name + "#" + this.id + "#" + this.address + "#" + this.birthday + "#" + this.email;
    }
}

(2)User

public class User {
	private String name;
	private int age;
	private Boolean sex;
	private String address;
	private Birthday birthday;

	// getter and setter

	@Override
    public String toString() {
        return this.name + "#" + this.age + "#" + this.sex + "#" + this.address + "#" + this.birthday.getBirthday();
    }
}

(3)Birthday

public class Birthday {
	private String birthday;

	public Birthday() {
	}

	// getter and setter
}

3. spring配置:

<?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:context="http://www.springframework.org/schema/context"
	xmlns:mvc="http://www.springframework.org/schema/mvc"
	xsi:schemaLocation="http://www.springframework.org/schema/mvc
		http://www.springframework.org/schema/mvc/spring-mvc.xsd
		http://www.springframework.org/schema/beans
		http://www.springframework.org/schema/beans/spring-beans.xsd
		http://www.springframework.org/schema/context
		http://www.springframework.org/schema/context/spring-context.xsd">

	<!-- 加入注解驱动 -->
	<mvc:annotation-driven />

	<!-- 默认扫描的包路径 -->
	<context:component-scan base-package="com.zdp" />

	<!-- 视图解析器 -->
	<bean class="org.springframework.web.servlet.view.BeanNameViewResolver">
		<property name="order" value="1" />
	</bean>

	<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
		<property name="viewClass" value="org.springframework.web.servlet.view.JstlView" />
	</bean>

	<!-- xml视图,XStreamMarshaller,能够转换不论什么形式的java对象 -->
	<bean name="xStreamMarshallingView" class="org.springframework.web.servlet.view.xml.MarshallingView">
		<property name="marshaller">
			<bean class="org.springframework.oxm.xstream.XStreamMarshaller">
				<!-- 启用annotation -->
				<property name="autodetectAnnotations" value="true" />

				<!-- 类名别名 -->
				<property name="aliases">
					<map>
						<!-- Account这个类的别名就变成了myBeans,那么转换后的xml中就是myBeans -->
						<entry key="myBeans" value="com.zdp.domain.Account" />
					</map>
				</property>

				<!-- 基本属性别名 -->
				<property name="fieldAliases">
					<map>
						<!-- Account中的brithday这个属性 -->
						<entry key="com.zdp.domain.Account.birthday" value="birthday" />
					</map>
				</property>
			</bean>
		</property>
	</bean>
</beans>

4. XstreamController

/**
 * 利用xStream进行Java对象到XML的转换技术
 */
@Controller
@RequestMapping("/xstream/view")
public class XStreamController {

	// 普通JavaBean转换成XML
	// url: http://localhost:8080/springmvc_xStream/xstream/view/doXMLXstream
	@RequestMapping("/doXMLXstream")
	public ModelAndView doXMLJaxb2View() {
		ModelAndView mav = new ModelAndView("xStreamMarshallingView");
		Account account = new Account();
		account.setAddress("address");
		account.setEmail("email");
		account.setId(1);
		account.setName("haha");
		Birthday day = new Birthday();
		day.setBirthday("2010-11-22");
		account.setBirthday(day);
		mav.addObject(BindingResult.MODEL_KEY_PREFIX, account);
		return mav;
	}

	// 转换带List属性的JavaBean
	// url: http://localhost:8080/springmvc_xStream/xstream/view/doListXMLXstream
	@RequestMapping("/doListXMLXstream")
	public ModelAndView doListXMLXStreamView() {
		ModelAndView mav = new ModelAndView("xStreamMarshallingView");
		List<Object> list = new ArrayList<Object>();
		for (int i = 0; i < 3; i++) {
			Account account = new Account();
			account.setAddress("北京#" + i);
			account.setEmail("email" + i + "@12" + i + ".com");
			account.setId(1 + i);
			account.setName("haha#" + i);
			Birthday birthday = new Birthday();
			birthday.setBirthday("2010-11-2" + i);
			account.setBirthday(birthday);
			list.add(account);

			User user = new User();
			user.setAddress("china GuangZhou 广州# " + i);
			user.setAge(23 + i);
			user.setBirthday(birthday);
			user.setName("jack#" + i);
			user.setSex(Boolean.parseBoolean(i + ""));
			list.add(user);
		}

		mav.addObject(list);
		return mav;
	}

	// 转换带有Map属性的JavaBean
	// url: http://localhost:8080/springmvc_xStream/xstream/view/doMapXMLXstream
	@RequestMapping("/doMapXMLXstream")
	public ModelAndView doDifferXMLXStreamView() {
		ModelAndView mav = new ModelAndView("xStreamMarshallingView");
		Account account = new Account();
		account.setAddress("广东");
		account.setEmail("email");
		account.setId(1);
		account.setName("haha");
		Birthday birthday = new Birthday();
		birthday.setBirthday("2010-11-22");
		account.setBirthday(birthday);

		User user = new User();
		user.setAddress("china GuangZhou");
		user.setAge(23);
		user.setBirthday(birthday);
		user.setName("jack");
		user.setSex(true);

		Map<String, Object> map = new HashMap<String, Object>();
		map.put("account", account);
		map.put("user", user);
		mav.addObject(map);
		return mav;
	}

	// 转换数组
	// url: http://localhost:8080/springmvc_xStream/xstream/view/doArrayXMLXstream
	@RequestMapping("/doArrayXMLXstream")
	public ModelAndView doArrayXMLXStreamView() {
		ModelAndView mav = new ModelAndView("xStreamMarshallingView");
		Account[] accountArr = new Account[2]; 

		Account account = new Account();
		account.setAddress("北京");
		account.setEmail("email");
		account.setId(1);
		account.setName("haha");
		Birthday birthday = new Birthday();
		birthday.setBirthday("2010-11-22");
		account.setBirthday(birthday);
		accountArr[0] = account;

		account = new Account();
		account.setAddress("上海");
		account.setEmail("email");
		account.setId(1);
		account.setName("haha");
		birthday = new Birthday();
		birthday.setBirthday("2014-11-22");
		account.setBirthday(birthday);
		accountArr[1] = account;

		mav.addObject(accountArr);
		return mav;
	}
}

源代码下载:http://download.csdn.net/detail/zdp072/7866271

原文:http://blog.csdn.net/ibm_hoojo/article/details/6371647

时间: 2024-08-05 05:19:02

springMVC整合xStream的相关文章

六:Dubbo与Zookeeper、SpringMvc整合和使用

DUBBO与ZOOKEEPER.SPRINGMVC整合和使用 互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式服务架构以及流动计算架构势在必行,Dubbo是一个分布式服务框架,在这种情况下诞生的.现在核心业务抽取出来,作为独立的服务,使前端应用能更快速和稳定的响应. 第一:介绍Dubbo背景 Dubbo是一个分布式服务框架,解决了上面的所面对的问题,Dubbo的架构如图所示: 主要核心部件: Remoting: 网络通信框架,实现了 sync-over-async 和

spring和springMVC整合注解版helloworld

整合的之前需要从官网上下载spring完整的jar包,我下载的是spring-framework-3.2.2.RELEASE.整合步骤如下: 1.在eclipse中新建一个web项目,将下载的spring的jar包拷入lib目录下,但是spring启动的时候依赖一个commons-logging-1.1.jar的jar包,你需要额外的下载. 2.编写web.xml,配置spring的分发器和spring配置文件的位置.具体内容如下: <servlet> <servlet-name>

Dubbo与Zookeeper、SpringMVC整合和使用(负载均衡、容错) 【转】

互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式服务架构以及流动计算架构势在必行,Dubbo是一个分布式服务框架,在这种情况下诞生的.现在核心业务抽取出来,作为独立的服务,使前端应用能更快速和稳定的响应. 第一:介绍Dubbo背景 大规模服务化之前,应用可能只是通过RMI或Hessian等工具,简单的暴露和引用远程服务,通过配置服务的URL地址进行调用,通过F5等硬件进行负载均衡. (1) 当服务越来越多时,服务URL配置管理变得非常困难,F5硬件负载均衡器的单点压力也

Dubbo与Zookeeper、SpringMVC整合和使用(负载均衡、容错)(转)

互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式服务架构以及流动计算架构势在必行,Dubbo是一个分布式服务框架,在这种情况下诞生的.现在核心业务抽取出来,作为独立的服务,使前端应用能更快速和稳定的响应. 第一:介绍Dubbo背景 大规模服务化之前,应用可能只是通过RMI或Hessian等工具,简单的暴露和引用远程服务,通过配置服务的URL地址进行调用,通过F5等硬件进行负载均衡. (1) 当服务越来越多时,服务URL配置管理变得非常困难,F5硬件负载均衡器的单点压力也

Dubbo与Zookeeper、SpringMVC整合和使用(负载均衡、容错)【转】

互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式服务架构以及流动计算架构势在必行,Dubbo是一个分布式服务框架,在这种情况下诞生的.现在核心业务抽取出来,作为独立的服务,使前端应用能更快速和稳定的响应. 第一:介绍Dubbo背景 大规模服务化之前,应用可能只是通过RMI或Hessian等工具,简单的暴露和引用远程服务,通过配置服务的URL地址进行调用,通过F5等硬件进行负载均衡. (1) 当服务越来越多时,服务URL配置管理变得非常困难,F5硬件负载均衡器的单点压力也

springmvc整合redis架构搭建实例

新换环境,又有新东西可以学习了,哈皮! 抽空学习之余看了一下redis,个人对Springmvc的爱是忠贞不渝,所以整理了一下Springmvc整合redis的环境搭建.分享学习. 第一步: 创建maven项目: 实例pom.xml内容如下 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns

Mybatis使用之SpringMVC整合

Mybatis使用之SpringMVC整合 一:简介 主要记录Mybatis如何与SpringMVC框架整合.Mybatis真正与Spring结合更能体现出其灵活.便捷的特点.数据源交由Spring管理.事务交由Spring管理.配置文件.映射文件交由Spring加载.初始化.映射接口交由Spring注入等等.大大简化了Mybatis代码.配置量.Mybatis只需关心与数据库打交道.处理数据与实体类之间的映射即可. 二:环境介绍 主要是Mybatis3.2.8与Spring4.1.0之间的整合

springMvc整合Freemarker引入CSS,JS文件404的问题

在spring webmvcjar包中有个spring.ftl的文件 如下图: 你可以把他拷出来,放到你的目录下,也可以不拷出来,具体的用法就是 在你的freemaker模版开头加上 <#import "spring.ftl" as spring/> 如果你烤出了spring.ftl文件,像找存在感的话,比如拷到 当前项目路径的plugins文件下 那么就加上这个路径就好了<#import "plugins/spring.ftl" as sprin

SpringMVC整合MongoDB

首先,在pom文件中新增spring-data-mongodb的依赖: <dependency> <groupId>org.springframework.data</groupId> <artifactId>spring-data-mongodb</artifactId> <version>1.8.1.RELEASE</version></dependency>然后,新建spring-mongo.xml &l