struts2 json

1 json定义 参考 http://www.json.org/
  json插件 参考 https://cwiki.apache.org/WW/json-plugin.html
导入struts2-json-plugin-2.1.8.1.jar 到lib目录下
改包下struts-plusin.xml

Xml代码 复制代码
  1. <?xml version="1.0" encoding="UTF-8" ?>  
  2.   
  3. <!DOCTYPE struts PUBLIC   
  4.         "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"   
  5.         "http://struts.apache.org/dtds/struts-2.0.dtd">  
  6.   
  7. <struts>  
  8.     <package name="json-default" extends="struts-default">  
  9.         <result-types>  
  10.             <result-type name="json" class="org.apache.struts2.json.JSONResult"/>  
  11.         </result-types>  
  12.         <interceptors>  
  13.             <interceptor name="json" class="org.apache.struts2.json.JSONInterceptor"/>  
  14.         </interceptors>  
  15.     </package>  
  16. </struts>  
<?xml version="1.0" encoding="UTF-8" ?>

<!DOCTYPE struts PUBLIC
        "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
        "http://struts.apache.org/dtds/struts-2.0.dtd">

<struts>
    <package name="json-default" extends="struts-default">
        <result-types>
            <result-type name="json" class="org.apache.struts2.json.JSONResult"/>
        </result-types>
        <interceptors>
            <interceptor name="json" class="org.apache.struts2.json.JSONInterceptor"/>
        </interceptors>
    </package>
</struts>


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.     <package name="struts2.1" extends="json-default">        
  5.         <action name="getXmlAction" class="com.test.action.xml.GetXmlAction"></action>  
  6.         <action name="getJsonAction" class="com.test.action.json.GetJsonAction">  
  7.             <result name="success" type="json">  
  8.                  <!--不包含序列化的属性-->  
  9.                 <param name="excludeProperties">myAge</param>  
  10.                 <!--父类序列化的属性-->  
  11.                 <param name="ignoreHierarchy">false</param>  
  12.                 <!--不包含空值属性-->  
  13.                 <param name="excludeNullProperties">true</param>  
  14.                 <!-- 从person根开始序列化   
  15.                 <param name="root">person</param>  
  16.                 -->  
  17.             </result>  
  18.         </action>  
  19.            
  20.         <action name="getGsonAction" class="com.test.action.json.GetGsonAction"></action>  
  21.        
  22.     </package>  
  23.        
  24. </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>
	<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>
				<!-- 从person根开始序列化
				<param name="root">person</param>
				-->
			</result>
		</action>
		
		<action name="getGsonAction" class="com.test.action.json.GetGsonAction"></action>
	
	</package>
	
</struts> 


2.action GetJsonAction.java以及javabean Person.java编写

Java代码 复制代码
  1. package com.test.action.json;   
  2.   
  3. import java.util.Date;   
  4.   
  5. import org.apache.struts2.json.annotations.JSON;   
  6.   
  7. import com.opensymphony.xwork2.ActionSupport;   
  8.   
  9. public class GetJsonAction extends ActionSupport   
  10. {   
  11.     private String name;   
  12.   
  13.     private int id;   
  14.   
  15.     private int age;   
  16.   
  17.     private String address;   
  18.        
  19.     private Date date;    
  20.        
  21.     private Person person = new Person();   
  22.        
  23.     public Person getPerson()   
  24.     {   
  25.         return person;   
  26.     }   
  27.     public void setPerson(Person person)   
  28.     {   
  29.         this.person = person;   
  30.     }   
  31.     //format日期格式化格式  name重命名   serialize=false不序列化次属性   
  32.     @JSON(format = "yyyy-MM-dd", name = "myDate", serialize = false)   
  33.     public Date getDate()   
  34.     {   
  35.         return date;   
  36.     }   
  37.     public void setDate(Date date)   
  38.     {   
  39.         this.date = date;   
  40.     }   
  41.     public String getName()   
  42.     {   
  43.         return name;   
  44.     }   
  45.     public void setName(String name)   
  46.     {   
  47.         this.name = name;   
  48.     }   
  49.     @JSON(serialize = false)   
  50.     public int getId()   
  51.     {   
  52.         return id;   
  53.     }   
  54.     public void setId(int id)   
  55.     {   
  56.         this.id = id;   
  57.     }   
  58.     @JSON(name = "myAge")   
  59.     public int getAge()   
  60.     {   
  61.         return age;   
  62.     }   
  63.     public void setAge(int age)   
  64.     {   
  65.         this.age = age;   
  66.     }   
  67.     @JSON(name = "myAddress")   
  68.     public String getAddress()   
  69.     {   
  70.         return address;   
  71.     }   
  72.     public void setAddress(String address)   
  73.     {   
  74.         this.address = address;   
  75.     }   
  76.     @Override  
  77.     public String execute() throws Exception   
  78.     {   
  79.         //zhangsan   
  80.         Person person1 = new Person();   
  81.         person1.setId(1);   
  82.         person1.setName("zhangsan");   
  83.         person1.setAge(20);   
  84.         person1.setAddress("shanghai");   
  85.         person1.setDate(new Date());   
  86.            
  87.         //lisi   
  88.         Person person2 = new Person();   
  89.         person2.setId(2);   
  90.         person2.setName("lisi");   
  91.         person2.setAge(30);   
  92.         person2.setAddress("tianjin");   
  93.         person2.setDate(new Date());   
  94.            
  95.         if("zhangsan".equals(this.name))   
  96.         {   
  97.             this.id = person1.getId();   
  98.             this.age = person1.getAge();   
  99.             this.address = person1.getAddress();   
  100.             this.date = person1.getDate();   
  101.         }   
  102.         else  
  103.         {   
  104.             this.id = person2.getId();   
  105.             this.age = person2.getAge();   
  106.             this.address = person2.getAddress();   
  107.             this.date = person2.getDate();   
  108.         }   
  109.            
  110.         return SUCCESS;   
  111.     }   
  112. }  
package com.test.action.json;

import java.util.Date;

import org.apache.struts2.json.annotations.JSON;

import com.opensymphony.xwork2.ActionSupport;

public class GetJsonAction extends ActionSupport
{
	private String name;

	private int id;

	private int age;

	private String address;
	
	private Date date; 
	
	private Person person = new Person();
	
	public Person getPerson()
	{
		return person;
	}
	public void setPerson(Person person)
	{
		this.person = person;
	}
    //format日期格式化格式  name重命名   serialize=false不序列化次属性
	@JSON(format = "yyyy-MM-dd", name = "myDate", serialize = false)
	public Date getDate()
	{
		return date;
	}
	public void setDate(Date date)
	{
		this.date = date;
	}
	public String getName()
	{
		return name;
	}
	public void setName(String name)
	{
		this.name = name;
	}
	@JSON(serialize = false)
	public int getId()
	{
		return id;
	}
	public void setId(int id)
	{
		this.id = id;
	}
	@JSON(name = "myAge")
	public int getAge()
	{
		return age;
	}
	public void setAge(int age)
	{
		this.age = age;
	}
	@JSON(name = "myAddress")
	public String getAddress()
	{
		return address;
	}
	public void setAddress(String address)
	{
		this.address = address;
	}
	@Override
	public String execute() throws Exception
	{
		//zhangsan
		Person person1 = new Person();
		person1.setId(1);
		person1.setName("zhangsan");
		person1.setAge(20);
		person1.setAddress("shanghai");
		person1.setDate(new Date());
		
		//lisi
		Person person2 = new Person();
		person2.setId(2);
		person2.setName("lisi");
		person2.setAge(30);
		person2.setAddress("tianjin");
		person2.setDate(new Date());
		
		if("zhangsan".equals(this.name))
		{
			this.id = person1.getId();
			this.age = person1.getAge();
			this.address = person1.getAddress();
			this.date = person1.getDate();
		}
		else
		{
			this.id = person2.getId();
			this.age = person2.getAge();
			this.address = person2.getAddress();
			this.date = person2.getDate();
		}
		
		return SUCCESS;
	}
}

 

Java代码 复制代码
  1. /**  
  2.  *   
  3.  */  
  4. package com.test.action.json;   
  5.   
  6. import java.util.Date;   
  7.   
  8. /**  
  9.  * @author Administrator  
  10.  *   
  11.  */  
  12. public class Person {   
  13.     private int id;   
  14.     private String name;   
  15.     private int age;   
  16.     private String address;   
  17.     private Date date;   
  18.        
  19.   
  20.     public Date getDate() {   
  21.         return date;   
  22.     }   
  23.   
  24.     public void setDate(Date date) {   
  25.         this.date = date;   
  26.     }   
  27.   
  28.     public int getId() {   
  29.         return id;   
  30.     }   
  31.   
  32.     public void setId(int id) {   
  33.         this.id = id;   
  34.     }   
  35.   
  36.     public String getName() {   
  37.         return name;   
  38.     }   
  39.   
  40.     public void setName(String name) {   
  41.         this.name = name;   
  42.     }   
  43.   
  44.     public int getAge() {   
  45.         return age;   
  46.     }   
  47.   
  48.     public void setAge(int age) {   
  49.         this.age = age;   
  50.     }   
  51.   
  52.     public String getAddress() {   
  53.         return address;   
  54.     }   
  55.   
  56.     public void setAddress(String address) {   
  57.         this.address = address;   
  58.     }   
  59.   
  60. }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值