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 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>
<?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 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>
<?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编写
- 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;
- }
- }
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;
}
}
- /**
- *
- */
- package com.test.action.json;
- import java.util.Date;
- /**
- * @author Administrator
- *
- */
- public class Person {
- private int id;
- private String name;
- private int age;
- private String address;
- private Date date;
- public Date getDate() {
- return date;
- }
- public void setDate(Date date) {
- this.date = date;
- }
- 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 int getAge() {
- return age;
- }
- public void setAge(int age) {
- this.age = age;
- }
- public String getAddress() {
- return address;
- }
- public void setAddress(String address) {
- this.address = address;
- }
- }