一、 XML與JSON的生成
示例一:將Java對象轉換成XML數據
package com.ibeifeng.xstream;
import com.thoughtworks.xstream.XStream; import com.thoughtworks.xstream.io.xml.DomDriver;
public class TestXStream { public static void main(String[] args) { Person person = new Person(); person.setName("張三"); person.setAge(20); person.setSex(true); DomDriver domDriver = new DomDriver(); XStream xtream = new XStream(domDriver); xtream.alias("person", Person.class); String xml = xtream.toXML(person); System.out.println(xml); } } |
示例二:將Java對象集合轉換成XML數據
package com.ibeifeng.xstream;
import java.util.ArrayList; import java.util.List;
import com.thoughtworks.xstream.XStream; import com.thoughtworks.xstream.io.xml.DomDriver;
public class TestXStreamList { public static void main(String[] args) { List<Person> persons = new ArrayList<Person>(); Person person1 = new Person(); person1.setName("張三"); person1.setAge(20); person1.setSex(true);
Person person2 = new Person(); person2.setName("李四"); person2.setAge(30); person2.setSex(false);
persons.add(person1); persons.add(person2);
DomDriver domDriver = new DomDriver(); XStream xtream = new XStream(domDriver); xtream.alias("person", Person.class); String xml = xtream.toXML(persons); System.out.println(xml); } } |
實例三:將Java對象轉換成JSON對象
package com.ibeifeng.jsonlib;
import net.sf.json.JSONObject;
import com.ibeifeng.xstream.Person;
public class TestJsonlib { public static void main(String[] args) { Person person = new Person(); person.setName("張三"); person.setAge(20); person.setSex(true); JSONObject jsonObject = JSONObject.fromObject(person); System.out.println(jsonObject.toString()); } }
|
示例四:將Java對象集合轉換成JSON對象數組
package com.ibeifeng.jsonlib;
import java.util.ArrayList; import java.util.List;
import net.sf.json.JSONArray;
import com.ibeifeng.xstream.Person;
public class TestJsonlibList { public static void main(String[] args) { List<Person> persons = new ArrayList<Person>(); Person person1 = new Person(); person1.setName("張三"); person1.setAge(20); person1.setSex(true);
Person person2 = new Person(); person2.setName("李四"); person2.setAge(30); person2.setSex(false);
persons.add(person1); persons.add(person2);
JSONArray jsonObjects = JSONArray.fromObject(persons); System.out.println(jsonObjects.toString()); } }
|
二、ExtJS和Struts 2框架整合。
1.添加Struts 2所需JAR包。
2.導入Struts 2的JSON插件JAR包。
3.在web.xml文件中添加Struts 2監聽器。
<!--定義核心Filter FilterDispatcher --> <filter> <!-- 定義核心Filter的名稱 --> <filter-name>struts2</filter-name> <!--定義核心Filter的實現類 --> <filter-class> org.apache.struts2.dispatcher.FilterDispatcher </filter-class> </filter>
<filter-mapping> <!--核心Filter的名稱 --> <filter-name>struts2</filter-name> <!--使用該核心Filter來接受所有的Web請求 --> <url-pattern>/*</url-pattern> </filter-mapping> |
4.添加Action。
package com.ibeifeng.action;
import java.util.ArrayList; import java.util.List;
import com.ibeifeng.xstream.Person; import com.opensymphony.xwork2.ActionSupport;
public class GetPerson extends ActionSupport { List<Person> persons;
public List<Person> getPersons() { return persons; }
public void setPersons(List<Person> persons) { this.persons = persons; }
public String execute() throws Exception { persons = new ArrayList<Person>(); Person person1 = new Person(); person1.setName("張三"); person1.setAge(20); person1.setSex(true);
Person person2 = new Person(); person2.setName("李四"); person2.setAge(30); person2.setSex(false);
persons.add(person1); persons.add(person2); return SUCCESS; }
}
|
5.配置Action。
<?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="struts2" extends="json-default"> <action name="getPerson" class="com.ibeifeng.action.GetPerson"> <result type="json"/> </action> </package> </struts> |