第二十講:ExtJS與Struts 2框架整合

一、 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>

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章