struts2.1.8中jsonplugin用法

转:http://abstractforever.iteye.com/blog/614777

 

正在研究,可是对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类:

Java代码 复制代码  收藏代码
  1. package org.foerver.action;   
  2.   
  3. import java.util.ArrayList;   
  4. import java.util.HashMap;   
  5. import java.util.List;   
  6. import java.util.Map;   
  7.   
  8. import org.foerver.entity.Goods;   
  9.   
  10. import com.opensymphony.xwork2.ActionSupport;   
  11.   
  12. public class JsonAction extends ActionSupport {   
  13.   
  14.     private static final long serialVersionUID = 2601714969474548417L;   
  15.     private Goods goods = new Goods();   
  16.     private String message = "默认消息";   
  17.     private List list = new ArrayList();   
  18.     private Map<String, Object> hashMap = new HashMap<String, Object>();   
  19.   
  20.     public String queryList() throws Exception {   
  21.         System.out.println("queryList()");   
  22.         for (int i = 0; i < 4; i++) {   
  23.             Goods item = new Goods();   
  24.             item.setName("橘子");   
  25.             item.setStand("每箱33个");   
  26.             item.setMoney(99);   
  27.             item.setLeavings(43);   
  28.             item.setOrders(3 + i);   
  29.             list.add(item);   
  30.         }   
  31.         return "queryList";   
  32.     }   
  33.   
  34.     public String queryMap() {   
  35.         System.out.println("queryMap()");   
  36.         hashMap.put("username""admin");   
  37.         hashMap.put("password""forever");   
  38.         Goods item = new Goods();   
  39.         item.setName("橘子");   
  40.         item.setStand("每箱27个");   
  41.         item.setMoney(99);   
  42.         item.setLeavings(43);   
  43.         item.setOrders(3);   
  44.         hashMap.put("item", item);   
  45.         return "queryMap";   
  46.     }   
  47.   
  48.     public String message() {   
  49.         System.out.println("message()");   
  50.         message = "返回普通的字符串内容";   
  51.   
  52.         return "message";   
  53.     }   
  54.   
  55.     public String query() {   
  56.         System.out.println("query()");   
  57.         goods.setName("橘子");   
  58.         goods.setStand("每箱27个");   
  59.         goods.setMoney(99);   
  60.         goods.setLeavings(43);   
  61.         goods.setOrders(3);   
  62.         return "query";   
  63.     }   
  64.   
  65.     public String getMessage() {   
  66.   
  67.         return message;   
  68.     }   
  69.   
  70.     public void setMessage(String message) {   
  71.         this.message = message;   
  72.     }   
  73.   
  74.     public Goods getGoods() {   
  75.         return goods;   
  76.     }   
  77.   
  78.     public void setGoods(Goods goods) {   
  79.         this.goods = goods;   
  80.     }   
  81.   
  82.     public List getList() {   
  83.         return list;   
  84.     }   
  85.   
  86.     public void setList(List list) {   
  87.         this.list = list;   
  88.     }   
  89.   
  90.     public Map<String, Object> getHashMap() {   
  91.         return hashMap;   
  92.     }   
  93.   
  94.     public void setHashMap(Map<String, Object> hashMap) {   
  95.         this.hashMap = hashMap;   
  96.     }   
  97.   
  98.        
  99.        
  100.   
  101. }  
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类:

Java代码 复制代码  收藏代码
  1. package org.foerver.entity;   
  2.   
  3. import java.io.Serializable;   
  4.   
  5. //商品描述   
  6. /**  
  7.  * @author Administrator  
  8.  *  
  9.  */  
  10. public class Goods implements Serializable{   
  11.   
  12.     private static final long serialVersionUID = -3430492488228556256L;   
  13.     public int id;//编号   
  14.     public String name;//名字   
  15.     public String stand;//标准   
  16.     public int money;//价格   
  17.     public int leavings;//库存   
  18.     public int orders;//已订购数量   
  19.        
  20.     public int getId() {   
  21.         return id;   
  22.     }   
  23.     public void setId(int id) {   
  24.         this.id = id;   
  25.     }   
  26.     public String getName() {   
  27.         return name;   
  28.     }   
  29.     public void setName(String name) {   
  30.         this.name = name;   
  31.     }   
  32.     public String getStand() {   
  33.         return stand;   
  34.     }   
  35.     public void setStand(String stand) {   
  36.         this.stand = stand;   
  37.     }   
  38.     public int getMoney() {   
  39.         return money;   
  40.     }   
  41.     public void setMoney(int money) {   
  42.         this.money = money;   
  43.     }   
  44.     public int getLeavings() {   
  45.         return leavings;   
  46.     }   
  47.     public void setLeavings(int leavings) {   
  48.         this.leavings = leavings;   
  49.     }   
  50.     public int getOrders() {   
  51.         return orders;   
  52.     }   
  53.     public void setOrders(int orders) {   
  54.         this.orders = orders;   
  55.     }   
  56.        
  57. }  
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代码 复制代码  收藏代码
  1. <?xml version="1.0" encoding="UTF-8" ?>  
  2. <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">  
  3. <struts>  
  4.     <!-- 指定struts配置文件修改后是否自动重新加载文件 -->  
  5.     <constant name="struts.configuration.xml.reload" value="true"></constant>  
  6.        
  7.     <package name="json" namespace="/json" extends="json-default">  
  8.         <action name="json_*" class="org.foerver.action.JsonAction" method="{1}">  
  9.             <result type="json" name="{1}"/>  
  10.         </action>  
  11.         <action name="json_view">  
  12.             <result>/json.jsp</result>  
  13.         </action>  
  14.     </package>  
  15. </struts>      
<?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页面:

Html代码 复制代码  收藏代码
  1. <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>  
  2. <%@taglib uri="/struts-tags" prefix="s" %>  
  3. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">  
  4.   
  5.   
  6. <html>  
  7.   <head>  
  8.     <title>json的使用</title>  
  9.     <s:url id="query_message_url" action="json_message"/>  
  10.     <s:url id="query_url" action="json_query"/>  
  11.     <s:url id="query_list_url" action="json_queryList"/>  
  12.     <s:url id="query_map_url" action="json_queryMap"/>  
  13.      <script type="text/javascript" src="${pageContext.request.contextPath}/jquery1.3.2.js"></script>  
  14.     <script type="text/javascript">  
  15.         $(function(){   
  16.             $("#btnQueryMsg").bind("click",function(){   
  17.                 $.ajax({   
  18.                     url:"<s:property value='query_message_url' />",   
  19.                     type:"POST",   
  20.                     dataType:"json",   
  21.                     success:function(data){   
  22.                         //循环json对象的所有键值对   
  23.                         $("#jsonData").empty();   
  24.                         $.each(data,function(key,value){   
  25.                             $("#jsonData").append("key="+key+":value="+value+"<br/>");   
  26.                         });   
  27.                     }   
  28.                 });   
  29.             });   
  30.             $("#btnQuery").bind("click",function(){   
  31.                 $.ajax({   
  32.                     url:"<s:property value='query_url' />",   
  33.                     type:"POST",   
  34.                     dataType:"json",   
  35.                     success:function(data){   
  36.                         //循环json对象的所有键值对   
  37.                         $("#jsonData").empty();   
  38.                         $.each(data.goods,function(key,value){   
  39.                             $("#jsonData").append("key="+key+":value="+value+"<br/>");   
  40.                         });   
  41.                     }   
  42.                 });   
  43.             });   
  44.                
  45.             $("#btnQueryList").bind("click",function(){   
  46.                 $.getJSON(   
  47.                     "<s:property value='query_list_url' />",   
  48.                     function(data){   
  49.                         //循环json对象的所有键值对   
  50.                         $("#jsonData").empty();   
  51.                         $.each(data.list,function(key,value){   
  52.                             $("#jsonData").append("key="+key+"<br/>");   
  53.                             $.each(value,function(k,v){   
  54.                                 $("#jsonData").append("key="+k+":value="+v+"<br/>");   
  55.                             });    
  56.                             $("#jsonData").append("************<br/>");   
  57.                                
  58.                         });   
  59.                     }   
  60.                 );   
  61.             });   
  62.                
  63.             $("#btnQueryMap").bind("click",function(){   
  64.                 $.ajax({   
  65.                     url:"<s:property value='query_map_url' />",   
  66.                     type:"POST",   
  67.                     dataType:"json",   
  68.                     success:function(data){   
  69.                         //循环json对象的所有键值对   
  70.                         $("#jsonData").empty();   
  71.                         $.each(data.hashMap,function(key,value){   
  72.                             $("#jsonData").append("key="+key+":value="+value+"<br/>");   
  73.                         });   
  74.                     }   
  75.                 });   
  76.             });   
  77.                
  78.         });   
  79.            
  80.     </script>  
  81.  </head>  
  82.      
  83.   <body>  
  84.     返回的json格式:<div id="jsonData"></div><br/>  
  85.     <input type="button" value="返回普通消息" id="btnQueryMsg"/><br/>  
  86.     <input type="button" value="返回单个对象" id="btnQuery"/><br/>  
  87.     <input type="button" value="返回list对象" id="btnQueryList"/><br/>  
  88.     <input type="button" value="返回map对象" id="btnQueryMap"/><br/>  
  89.     <s:debug></s:debug>  
  90.        
  91.   </body>  
  92. </html>  
<%@ 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>

 

你可能感兴趣的:(struts2)