`
tianpeng1006
  • 浏览: 6123 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论
阅读更多
1.gson是json的开发包 参考http://code.google.com/p/google-gson/
下载导入gson-1.4.jar到lib目录下
编写action javabean类
GetGsonAction.java
package com.test.action.gson;

import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.List;

import javax.servlet.http.HttpServletResponse;

import org.apache.struts2.ServletActionContext;

import com.google.gson.Gson;
import com.opensymphony.xwork2.ActionSupport;

public class GetGsonAction extends ActionSupport
{
	@Override
	public String execute() throws Exception
	{
		List<People> list = new ArrayList<People>();
		
		// Info of first user
		People people1 = new People();

		Address address1 = new Address();
		address1.setHomeAddress("beijing");
		address1.setCompanyAddress("shanghai");
		
		people1.setId(1);
		people1.setName("zhangsan");
		people1.setAddress(address1);
		
		People people11 = new People();
		people11.setId(5);
		people11.setName("zhangsan's friend1");
		
		People people12 = new People();
		people12.setId(6);
		people12.setName("zhangsan's friend2");
		
		List<People> list1 = new ArrayList<People>();
		list1.add(people11);
		list1.add(people12);
		
		people1.setFriends(list1);
		
		//Info of second user
		People people2 = new People();
		
		Address address2 = new Address();
		address2.setHomeAddress("liaoning");
		address2.setCompanyAddress("fujian");
		
		people2.setId(2);
		people2.setName("lisi");
		people2.setAddress(address2);
		
		People people21 = new People();
		people21.setId(10);
		people21.setName("lisi's friend1");
		
		People people22 = new People();
		people22.setId(11);
		people22.setName("lisi's friend2");
		
		List<People> list2 = new ArrayList<People>();
		list2.add(people21);
		list2.add(people22);
		
		people2.setFriends(list2);
		
		// put all the users into result list
		list.add(people1);
		list.add(people2);
		
		//获取Gson实例对象
		Gson gson = new Gson();
		
		//将listjava对象装化为JSON对象
		String result = gson.toJson(list);
		
		HttpServletResponse response = ServletActionContext.getResponse();
		response.setContentType("application/json; charset=utf-8"); //输出文本为application
		response.setHeader("Cache-Control", "no-cache"); //取消浏览器缓存
		
		//获取输出流
		PrintWriter out = response.getWriter();
		//将JSON对象输出到客户端
		out.print(result);
		
		out.flush();
		out.close();
		
		return null;
	}
}


People.java
package com.test.action.gson;

import java.util.List;

public class People {
	private int id;
	private String name;
	private Address address;
	private List<People> friends;

	public int getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public Address getAddress() {
		return address;
	}

	public void setAddress(Address address) {
		this.address = address;
	}

	public List<People> getFriends() {
		return friends;
	}

	public void setFriends(List<People> friends) {
		this.friends = friends;
	}

}


Address.java
package com.test.action.gson;

public class Address {
	private String homeAddress;
	private String companyAddress;

	public String getHomeAddress() {
		return homeAddress;
	}

	public void setHomeAddress(String homeAddress) {
		this.homeAddress = homeAddress;
	}

	public String getCompanyAddress() {
		return companyAddress;
	}

	public void setCompanyAddress(String companyAddress) {
		this.companyAddress = companyAddress;
	}
}

2.简单的 struts.xml配置
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">
<struts>
	<package name="struts2.1" extends="json-default">		
	<!--	<action name="getXmlAction" class="com.test.action.xml.GetXmlAction"></action>
		<action name="getJsonAction" class="com.test.action.json.GetJsonAction">
			<result name="success" type="json">
			     <!--不包含序列化的属性-->
				<param name="excludeProperties">myAge</param>
				<!--父类序列化的属性-->
				<param name="ignoreHierarchy">false</param>
				<!--不包含空值属性-->
				<param name="excludeNullProperties">true</param>
				<!-- 
				<param name="root">person</param>
				-->
			</result>
		</action>-->		
		<action name="getGsonAction" class="com.test.action.gson.GetGsonAction"></action>	
	</package>
</struts>

3.客户端gson.jsp页面
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <script type="text/javascript" src="jQuery/jquery-1.4.2.js"></script>
    
    <script type="text/javascript">

    function getInfo()
    {
		$.post("getJsonAction.action",
		{
			name: $("#name").val()
		}, function(returnedData, status)
		{
			if("success" == status)
			{
				
			}
		}
		);
    }

    function getAllInfo()
    {
    	$.post("getGsonAction.action",
		{
			
		}, function(returnedData, status)
		{
			if("success" == status)
			{
				//returnedData = eval("(" + returnedData + ")");
				
				//alert(returnedData[0].address.homeAddress + "," + returnedData[0].friends[1].name);
                //普通字符串
				//var obj = "{name: 'zhangsan'}";
                //转化为json对象
				//var jsonObj = eval("(" + obj + ")");

				//alert(jsonObj.name);

				
				//var obj2 = {name : 'zhangsan'};

				//alert(obj2.name);

                //动态表格的构建
				var html = "<table width='60%' border='1' align='center'><tr><th>id</th><th>name</th><th>homeAddress</th><th>companyAddress</th></tr>";

				for(var i = 0; i < returnedData.length; ++i)
				{
					var person = returnedData[i];

					var id = person.id;
					var name = person.name;
					var homeAddress = person.address.homeAddress;
					var companyAddress = person.address.companyAddress;

					var tr = "<tr align='center'><td>" + id + "</td><td>" + name + "</td><td>"+ homeAddress + "</td><td>" + companyAddress + "</td></tr>";

					html += tr;
				}
				
				html += "</table>";

				$("body table:eq(0)").remove();
				$("#theBody").append(html);
			}	
		}
		);
    }
    
    </script>
    
  </head>
  
  <body id="theBody">
   
   <select id="name">
   		<option value="zhangsan" selected="selected">zhangsan</option>
   		<option value="lisi">lisi</option>
   </select>
   
   <input type="button" value="get info" onclick="getInfo();"> &nbsp;&nbsp;
   <input type="button" value="get all info" onclick="getAllInfo()">
   
   
  </body>
</html>


分享到:
评论

相关推荐

    struts2~json~gson~jquery~ajax简单应用

    ### Struts2、JSON、Gson、jQuery与Ajax简单应用详解 #### 一、概述 在Web开发领域,Struts2、JSON、Gson、jQuery和Ajax是几个非常重要的技术,它们各自扮演着不同的角色,但又能够很好地协同工作来构建高效、交互...

    最新版本的Struts2+Spring4+Hibernate4三大框架整合(改进:增加整合Quartz和Gson)

    1、 同时使用了Struts2、Spring4、Hibernate4、Quartz、JUnit4、Log4j、SLF4J、Ehcache、Gson等库或框架,搭建一个最基本的项目原型。 2、 Spring配置提供了多种可选整合方案:详见applicationContext.xml的配置 (1...

    struts2所需的包和Struts2_json所需包

    - `jackson-*.jar` 或 `gson-*.jar`:这两个库提供了JSON对象和Java对象之间的自动转换,Struts2可以与它们集成,使得JSON处理更加便捷。 4. **Servlet容器相关库**:由于Struts2是基于Servlet API的,因此需要`...

    AJAX和struts2传递JSON数组

    这告诉Struts2框架当收到名为`struts2Action`的请求时,使用`Struts2Action`类,并返回JSON格式的结果。如果需要在Action执行后返回一个页面,可以将`result`元素的类型改为`dispatcher`。 总结来说,通过这种方式...

    Struts2+Json+Android简单实现

    Struts2、JSON和Android是三个在Web应用开发中至关重要的技术。本示例将详细介绍如何结合这三者实现一个简单的交互。 首先,Struts2是一个基于MVC(Model-View-Controller)架构的Java Web框架,它简化了创建动态、...

    Struts2搭建简易javaWeb后台

    在IDE(如IntelliJ IDEA或Eclipse)中创建一个新的Maven Web Application项目,并在`pom.xml`文件中添加以下Struts2和Gson的依赖: ```xml &lt;groupId&gt;org.apache.struts &lt;artifactId&gt;struts2-core &lt;version&gt;...

    Struts2 必需类库.zip

    Struts2是一个强大的Java web应用程序框架,用于构建和维护可扩展、结构清晰的MVC(Model-View-Controller)架构的应用程序。这个“Struts2 必需类库.zip”文件包含了开发Struts2应用所必需的核心库和依赖组件。在...

    struts2-jsondemo

    Struts2是一个强大的MVC(模型-视图-控制器)框架,它被广泛应用于Java Web开发中,提供了灵活的控制层来处理用户请求并管理业务逻辑。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和...

    json+struts2的jar

    JSON(JavaScript Object Notation)和Struts2是两个在Web开发中广泛使用的技术。JSON是一种轻量级的数据交换格式,它允许数据以键值对的形式进行传输,易于人阅读和编写,同时也方便机器解析和生成。而Struts2是一...

    struts2-json

    Struts2是一个非常著名的Java Web框架,用于构建企业级应用。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,常用于前后端数据交互。Struts2支持JSON的处理,使得开发人员能够轻松地将Java对象转换...

    struts2返回json

    Struts2是一个非常流行的Java Web框架,用于构建和维护可扩展、模块化且易于管理的企业级应用程序。在Struts2中,返回JSON(JavaScript Object Notation)数据类型是一种常见的需求,尤其是在开发AJAX或者前后端分离...

    struts dom4j json gson xml 拦截器 类型转换

    Struts、DOM4J、JSON、Gson与XML都是在IT行业中常见的技术,尤其是在Web开发领域。这些技术分别扮演着不同的角色,共同构建了高效、灵活的Web应用程序。以下是关于这些技术的详细解释: 1. **Struts**: Struts是...

    省市联动jquery+struts2

    标题中的“省市联动jQuery+Struts2”是指在Web开发中使用jQuery库和Struts2框架实现的一个功能,即当用户选择一个省份时,相关的城市会动态地在下拉列表中加载出来,提供用户选择。这个功能在很多需要收集用户地址...

    struts2 ztree

    Struts2是一个非常流行的Java Web框架,用于构建MVC(模型-视图-控制器)架构的应用程序。ZTree是一款优秀的JavaScript树形插件,常用于数据展示和管理,如文件目录、组织结构等。在Struts2框架下集成ZTree,可以...

    struts2+json的使用

    2. JSON库:Struts2的JSON插件依赖于特定的JSON库,如Jackson或Gson,确保项目中正确配置了这些库。 3. 错误处理:当服务器端发生错误时,应返回适当的错误信息,便于前端识别并进行处理。 综上所述,Struts2与JSON...

    jquery+struts2实现异步刷新锁需要的包

    另外,根据项目需求,可能还需要其他Struts2插件,如Struts2 Dojo插件或Struts2 AJAX插件,以提供更多的前端交互选项。 在实际开发过程中,步骤如下: 1. **引入依赖**:确保项目中包含了jQuery库、Struts2框架...

    Eclipse+Struts2+Spring+MyBatis+json+gson环境搭建

    在本文中,我们将探讨如何在Eclipse环境中搭建一个基于Struts2、Spring、MyBatis的SSM框架,并结合JSON和Gson库进行开发。首先,我们需要准备相关的安装文件,包括Struts2、Spring、MyBatis、jQuery、Eclipse IDE...

    struts2和json的jar包

    4. `jackson*.*.jar` 或 `gson-*.jar`: 这些是其他的JSON库,例如Jackson或Gson,它们也可以与Struts2一起工作,提供更灵活的对象-JSON绑定。 导入这些jar包后,开发者可以在Struts2配置文件中定义JSON结果类型,...

    struts2与json插件(2)

    Struts2是一个流行的Java web框架,它为构建MVC(模型-视图-控制器)架构的应用程序提供了强大的支持。在Struts2中,JSON(JavaScript Object Notation)插件是用于处理JSON数据交换的重要组件,这使得Struts2能够与...

    struts2+json+ajax整合例子(导入即可运行,附带详细教程)

    Struts2、JSON和AJAX是Web开发中的关键技术,它们的整合可以实现高效的数据交互和动态页面更新。本文将深入探讨这些技术以及如何在实际项目中整合它们。 **Struts2** 是一个基于MVC(Model-View-Controller)设计...

Global site tag (gtag.js) - Google Analytics