第二十讲:ExtJS与Struts 2框架整合

本文详细介绍了如何使用Java将对象转换为XML和JSON格式,包括单个对象和对象集合的转换。此外,还阐述了ExtJS与Struts2框架的整合过程,涉及配置、Action创建及JSON结果返回。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值