`

struts2.1.8中jsonplugin用法

阅读更多

正在研究,可是对json不是很熟,所以先研究哈。

导入所需jar包:

commons-fileupload-1.2.1.jar

commons-io-1.3.2.jar

freemarker-2.3.15.jar

json-lib-2.1.jar

ognl-2.7.3.jar

struts2-core-2.1.8.1.jar

struts2-json-plugin-2.1.8.1.jar

xwork-core-2.1.6.jar

JsonAction类:

package org.foerver.action;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.foerver.entity.Goods;

import com.opensymphony.xwork2.ActionSupport;

public class JsonAction extends ActionSupport {

	private static final long serialVersionUID = 2601714969474548417L;
	private Goods goods = new Goods();
	private String message = "默认消息";
	private List list = new ArrayList();
	private Map<String, Object> hashMap = new HashMap<String, Object>();

	public String queryList() throws Exception {
		System.out.println("queryList()");
		for (int i = 0; i < 4; i++) {
			Goods item = new Goods();
			item.setName("橘子");
			item.setStand("每箱33个");
			item.setMoney(99);
			item.setLeavings(43);
			item.setOrders(3 + i);
			list.add(item);
		}
		return "queryList";
	}

	public String queryMap() {
		System.out.println("queryMap()");
		hashMap.put("username", "admin");
		hashMap.put("password", "forever");
		Goods item = new Goods();
		item.setName("橘子");
		item.setStand("每箱27个");
		item.setMoney(99);
		item.setLeavings(43);
		item.setOrders(3);
		hashMap.put("item", item);
		return "queryMap";
	}

	public String message() {
		System.out.println("message()");
		message = "返回普通的字符串内容";

		return "message";
	}

	public String query() {
		System.out.println("query()");
		goods.setName("橘子");
		goods.setStand("每箱27个");
		goods.setMoney(99);
		goods.setLeavings(43);
		goods.setOrders(3);
		return "query";
	}

	public String getMessage() {

		return message;
	}

	public void setMessage(String message) {
		this.message = message;
	}

	public Goods getGoods() {
		return goods;
	}

	public void setGoods(Goods goods) {
		this.goods = goods;
	}

	public List getList() {
		return list;
	}

	public void setList(List list) {
		this.list = list;
	}

	public Map<String, Object> getHashMap() {
		return hashMap;
	}

	public void setHashMap(Map<String, Object> hashMap) {
		this.hashMap = hashMap;
	}

	
	

}

 Goods类:

package org.foerver.entity;

import java.io.Serializable;

//商品描述
/**
 * @author Administrator
 *
 */
public class Goods implements Serializable{

	private static final long serialVersionUID = -3430492488228556256L;
	public int id;//编号
	public String name;//名字
	public String stand;//标准
	public int money;//价格
	public int leavings;//库存
	public int orders;//已订购数量
	
	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 String getStand() {
		return stand;
	}
	public void setStand(String stand) {
		this.stand = stand;
	}
	public int getMoney() {
		return money;
	}
	public void setMoney(int money) {
		this.money = money;
	}
	public int getLeavings() {
		return leavings;
	}
	public void setLeavings(int leavings) {
		this.leavings = leavings;
	}
	public int getOrders() {
		return orders;
	}
	public void setOrders(int orders) {
		this.orders = orders;
	}
	
}

 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>
	<!-- 指定struts配置文件修改后是否自动重新加载文件 -->
	<constant name="struts.configuration.xml.reload" value="true"></constant>
	
	<package name="json" namespace="/json" extends="json-default">
		<action name="json_*" class="org.foerver.action.JsonAction" method="{1}">
			<result type="json" name="{1}"/>
		</action>
		<action name="json_view">
			<result>/json.jsp</result>
		</action>
	</package>
</struts>    

 

 

 json.jsp页面:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@taglib uri="/struts-tags" prefix="s" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">


<html>
  <head>
    <title>json的使用</title>
    <s:url id="query_message_url" action="json_message"/>
    <s:url id="query_url" action="json_query"/>
    <s:url id="query_list_url" action="json_queryList"/>
    <s:url id="query_map_url" action="json_queryMap"/>
     <script type="text/javascript" src="${pageContext.request.contextPath}/jquery1.3.2.js"></script>
    <script type="text/javascript">
    	$(function(){
    		$("#btnQueryMsg").bind("click",function(){
    			$.ajax({
    				url:"<s:property value='query_message_url' />",
    				type:"POST",
    				dataType:"json",
    				success:function(data){
    					//循环json对象的所有键值对
    					$("#jsonData").empty();
    					$.each(data,function(key,value){
    						$("#jsonData").append("key="+key+":value="+value+"<br/>");
    					});
    				}
    			});
    		});
    		$("#btnQuery").bind("click",function(){
    			$.ajax({
    				url:"<s:property value='query_url' />",
    				type:"POST",
    				dataType:"json",
    				success:function(data){
    					//循环json对象的所有键值对
    					$("#jsonData").empty();
    					$.each(data.goods,function(key,value){
    						$("#jsonData").append("key="+key+":value="+value+"<br/>");
    					});
    				}
    			});
    		});
    		
    		$("#btnQueryList").bind("click",function(){
    			$.getJSON(
    				"<s:property value='query_list_url' />",
    				function(data){
    					//循环json对象的所有键值对
    					$("#jsonData").empty();
    					$.each(data.list,function(key,value){
    						$("#jsonData").append("key="+key+"<br/>");
    						$.each(value,function(k,v){
    							$("#jsonData").append("key="+k+":value="+v+"<br/>");
    						});	
    						$("#jsonData").append("************<br/>");
    						
    					});
    				}
    			);
    		});
    		
    		$("#btnQueryMap").bind("click",function(){
    			$.ajax({
    				url:"<s:property value='query_map_url' />",
    				type:"POST",
    				dataType:"json",
    				success:function(data){
    					//循环json对象的所有键值对
    					$("#jsonData").empty();
    					$.each(data.hashMap,function(key,value){
    						$("#jsonData").append("key="+key+":value="+value+"<br/>");
    					});
    				}
    			});
    		});
    		
    	});
    	
    </script>
 </head>
  
  <body>
  	返回的json格式:<div id="jsonData"></div><br/>
  	<input type="button" value="返回普通消息" id="btnQueryMsg"/><br/>
  	<input type="button" value="返回单个对象" id="btnQuery"/><br/>
  	<input type="button" value="返回list对象" id="btnQueryList"/><br/>
  	<input type="button" value="返回map对象" id="btnQueryMap"/><br/>
  	<s:debug></s:debug>
  	
  </body>
</html>

 

0
0
分享到:
评论

相关推荐

    最新struts2.1.8 src and lib

    最新struts2.1.8 src and lib最新struts2.1.8 src and lib最新struts2.1.8 src and lib最新struts2.1.8 src and lib最新struts2.1.8 src and lib最新struts2.1.8 src and lib最新struts2.1.8 src and lib

    struts 2.1.8 jar包

    struts 2.1.8 jar包 struts 2.1.8 jar包 struts 2.1.8 jar包 struts 2.1.8 jar包 struts 2.1.8 jar包 struts 2.1.8 jar包 struts 2.1.8 jar包

    开发框架struts2.1.8.zip

    再者,Struts 2.1.8中的配置文件通常包括`struts-default.xml`和`struts-plugin.xml`,它们定义了框架的基本行为和插件的配置。`struts.xml`是应用级别的配置,定义Action、拦截器栈、结果类型等。通过XML配置或注解...

    struts2.1.8_jar包

    4. **ognl-2.7.3.jar**:OGNL(Object-Graph Navigation Language)是用于对象图导航的语言,Struts2使用它来进行表达式语言处理,如字段访问、方法调用、动态属性设置等。 5. **commons-io-1.3.2.jar**:Apache ...

    struts2.1.8

    例如,Struts2.1.8版本在之后的更新中修复了著名的S2-001漏洞,这是一个远程代码执行漏洞,对使用该版本的系统构成了威胁。 总的来说,Struts2.1.8作为一个早期版本,为开发者提供了构建Web应用的基础,但随着框架...

    struts2.1.8学习笔记

    在Struts2.1.8中,开发者可以通过配置文件添加自定义拦截器或者使用预定义的拦截器链。 4. **模型驱动(ModelDriven)**:Struts2提供了模型驱动模式,允许Action类自动绑定请求参数到一个模型对象,简化了数据绑定...

    struts 2.1.8 jar 完整开发

    commons-fileupload-1.2.1 commons-io-1.3.2 freemarker-2.3.15 ognl-2.7.3 struts2-json-plugin-2.1.8.1 struts2-embeddedjsp-plugin-2.1.8.1 struts2-core-2.1.8.1 ...struts2-spring-plugin-2.1.8.jar

    Struts2.1.8所依赖的主要包

    在Struts2中,OGNL用于表示Action方法的返回值,以及在视图层与模型数据的交互。 4. **freemarker.jar**:Freemarker是一个模板引擎,用于生成动态内容,如HTML页面。Struts2可以使用Freemarker作为默认的视图技术...

    struts2.1.8jar包 精简版

    在Struts2.1.8精简版中,主要关注的是文件上传和下载功能。这两个功能在许多Web应用中都非常重要,尤其是在处理用户交互和数据交换时。下面将详细介绍这两个功能及其在Struts2中的实现方式。 1. 文件上传: 在...

    struts2.1.8插件及学习文档

    在这个“struts2.1.8插件及学习文档”中,我们可以期待找到关于如何使用该版本Struts2进行开发的相关知识和资源。 首先,`struts2.1.8.doc`很可能是一份详细指南或教程,涵盖了Struts2.1.8的核心概念、配置、控制器...

    struts2.1.8+spring2.5.6

    Struts2.1.8与Spring2.5.6是两个经典的Java企业级开发框架,它们在J2EE(Java 2 Platform, Enterprise Edition)应用中扮演着重要的角色。Struts2是一个强大的MVC(Model-View-Controller)框架,而Spring则是一个...

    struts2.1.8.jar(全部jar包及api)

    10. **apps**:可能包含了一些示例应用程序或模板项目,用于演示如何使用Struts2.1.8开发实际的Web应用。 通过理解以上知识点,开发者可以有效地利用Struts2.1.8构建高效、可维护的Java Web应用。这个版本的Struts2...

    struts2.jar包(struts2.1.8.jar包)三号文件(太大总共分三次)

    描述中的“struts2.jar包struts2.1.jar包struts2.1.8.jar包”可能是在强调Struts2的不同版本,其中“struts2.1.jar”可能是对Struts2 2.1.x系列的泛指,而“struts2.1.8.jar”则是具体的版本号。每个版本都有其特性...

    struts2.1.8的包

    - **事务管理**:Spring可以提供全局的事务控制,Struts2中的Action方法可以直接利用。 - **AOP结合**:Spring AOP可以与Struts2的拦截器协同工作,实现更复杂的业务逻辑。 3. **与JSF集成**: - **联合使用视图...

    struts2.jar包(struts2.1.8.jar包)一号文件(太大总共分三次)

    描述中的"struts2.jar包struts2.1.jar包struts2.1.8.jar包"可能是提到Struts2框架的不同版本或者不同部分。"struts2.jar"是核心框架的JAR文件,包含了框架的基本组件和功能。"struts2.1.jar"可能是指Struts2的2.1...

    struts2.1.8 struts2源码 Eclipse关联这个可以

    在Eclipse中关联Struts2.1.8源码,可以帮助开发者更好地理解和调试代码。步骤包括: - 下载Struts2.1.8的源码包。 - 在Eclipse中,右键点击项目,选择"Build Path" -&gt; "Configure Build Path" -&gt; "Libraries" -&gt; ...

    Java代码生成工具 绿色版_生成Struts2.1.8,Spring2.5,Hibernate3代码

    Java代码生成工具是一种高效开发辅助软件,主要用于自动化生成基于Java技术栈的Web应用程序代码,尤其针对Struts2.1.8、Spring2.5和Hibernate3这三个经典框架的集成应用。这样的工具能够显著提高开发效率,减少手动...

    struts 2.1.8 spring 2.5 jap ext 整合 例子2

    struts 2.1.8 spring 2.5 jap ext 整合 例子 struts 2.1.8 spring 2.5 jap ext 整合 例子

Global site tag (gtag.js) - Google Analytics