`
yangzisai
  • 浏览: 87615 次
  • 性别: Icon_minigender_1
  • 来自: 东莞
社区版块
存档分类
最新评论

java代码用于返回JSON或者XML数据(extJs)

阅读更多
package com.hrm.util;

import java.util.ArrayList;
import java.util.List;

import net.sf.json.JSONObject;

import com.thoughtworks.xstream.XStream;
import com.thoughtworks.xstream.io.xml.DomDriver;
/**
* Title: Ext JS 辅助类
* Description: 该类用于转换java对象为XML文件格式或JSON文件格式
* @author 葛昊
* @time: 2009年2月5日11:10:54
*/
public class ExtHelper {
/**
* 通过List生成XML数据
* @param recordTotal 记录总数,不一定与beanList中的记录数相等
* @param beanList 包含bean对象的集合
* @return 生成的XML数据
*/
@SuppressWarnings("unchecked")
public static String getXmlFromList(long recordTotal , List beanList) {
   Total total = new Total();
   total.setResults(recordTotal);
   List results = new ArrayList();
   results.add(total);
   results.addAll(beanList);
   XStream sm = new XStream(new DomDriver());
   for (int i = 0; i < results.size(); i++) {
    Class c = results.get(i).getClass();
    String b = c.getName();
    String[] temp = b.split("\\.");
    sm.alias(temp[temp.length - 1], c);
   }
   String xml = "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n" + sm.toXML(results);
   return xml;
}
/**
* 通过List生成XML数据
* @param beanList 包含bean对象的集合
* @return 生成的XML数据
*/
@SuppressWarnings("unchecked")
public static String getXmlFromList(List beanList){
   return getXmlFromList(beanList.size(),beanList);
}
/**
* 通过List生成JSON数据
* @param recordTotal 记录总数,不一定与beanList中的记录数相等
* @param beanList 包含bean对象的集合
* @return 生成的JSON数据
*/
@SuppressWarnings("unchecked")
public static String getJsonFromList(long recordTotal , List beanList){
   TotalJson total = new TotalJson();
   total.setResults(recordTotal);
   total.setItems(beanList);
   JSONObject JsonObject = JSONObject.fromObject(total);
   return JsonObject.toString();
}
/**
* 通过List生成JSON数据
* @param beanList 包含bean对象的集合
* @return 生成的JSON数据
*/
@SuppressWarnings("unchecked")
public static String getJsonFromList(List beanList){
   return getJsonFromList(beanList.size(),beanList);
}
/**
* 通过bean生成JSON数据
* @param bean bean对象
* @return 生成的JSON数据
*/
public static String getJsonFromBean(Object bean){
   JSONObject JsonObject = JSONObject.fromObject(bean);
   return JsonObject.toString();
}
}

==================相关的类TotalJson.java==========================

package com.hrm.util;

import java.util.List;
@SuppressWarnings("unchecked")
public class TotalJson {
private long results;
private List items;
public List getItems() {
   return items;
}

public void setItems(List items) {
   this.items = items;
}

public long getResults() {
   return results;
}

public void setResults(long results) {
   this.results = results;
}
}

=========================Total.java=======================

package com.hrm.util;

public class Total {
private long results;

public long getResults() {
   return results;
}

public void setResults(long results) {
   this.results = results;
}
}

======================相关jar==============================

json-lib-2.2.1-jdk15.jar

xstream-1.3.jar

commons的一些相关jar

例如

commons-lang-2.3.jar

commons-logging-1.0.4.jar

commons-beanutils-1.6.jar

commons-collections-3.2.jar

ezmorph-1.0.4.jar

可以使用有相关功能的jar代替

===============调用实例=======================

Struts1.x中Action里调用

public ActionForward getAllDepartment(ActionMapping map, ActionForm form,
    HttpServletRequest request, HttpServletResponse response) throws Exception {
   BeanFactory bf=new ClassPathXmlApplicationContext("applicationContext-*.xml");
   DepartmentDao dptDao=(DepartmentDao)bf.getBean("dptManager");
   List<Department> dpts=dptDao.GetAllDpt();
   String json=ExtHelper.getJsonFromList(dpts);
   response.setContentType("text/json;charset=utf-8");
   System.out.println(json);
   response.getWriter().write(json);
//   String xml=ExtHelper.getXmlFromList(dpts);
//   //System.out.println(xml);
//   response.setContentType("application/xml;charset=utf-8");
//   response.getWriter().write(xml);
   return null;
}

注释部分为xml格式的返回

====================Extjs的Store===================

var _store = new Ext.data.JsonStore({
   root:'items',
   autoLoad : true,
   fields:[
    {name:'id',mapping:'id'},
    {name:'dptNum',mapping:'dptNum'},
    {name:'dptName',mapping:'dptName'},
    {name:'dptMan',mapping:'dptMan'}
   ],
   proxy : new Ext.data.HttpProxy({
    url : 'getAllDepartment.do?method=getAllDepartment'
   })
});

  http://www.dojochina.com/index.php?q=node/1306

分享到:
评论

相关推荐

    JSON.rar_JSON Hibernate_extjs_json struts ext_jsp json extjs_str

    可能有一个配置或者插件用于让Struts2的动作类能够返回JSON响应,同时ExtJS的组件能够解析并展示这些数据。 综上所述,这个项目可能涉及到以下技术点: 1. JSON作为数据交换格式,连接后端服务(如Hibernate)和...

    extjs+servlet+json简单应用

    ExtJS中的Ajax类提供了与服务器交互的能力,它支持发送GET和POST请求,以及处理JSON、XML等多种数据格式的响应。在本例中,ExtJS将作为前端,通过Ajax调用Servlet来获取或提交数据。 Servlet在Java Web应用中扮演着...

    AnyFo - Util - Json4Ext:通用ExtJS数据交换处理

    那么就需要使ExtJS开发的界面和后台Java代码中生成的数据交互,一般来说,可以选 择XML格式和Json格式的数据进行交互,但是XML格式的数据操作相对繁琐,因此,大部分开发会选择Json格式的数据进行交互,因此,我们的...

    extjs 跟 struts+json

    ExtJS是一个强大的JavaScript库,用于构建富客户端Web应用程序,而Struts是Java Web开发中的一个MVC(模型-视图-控制器)框架。这篇文章可能涵盖了以下知识点: 1. **ExtJS Grid Panel**: - ExtJS中的Grid Panel...

    Extjs 调用Java Json的例子

    JSON-P主要用于在浏览器中处理JSON响应,而JSON-Java库则提供了一套API,使得Java代码可以方便地序列化和反序列化JSON对象。 **ExtJS调用Java JSON步骤** 1. **建立Java服务** 在Java后端,你需要创建一个RESTful...

    Extjs Tree + JSON + Struts2 例子

    ExtJS 是一个流行的 JavaScript 框架,用于构建富客户端应用,它支持多种数据源,包括 JSON。Struts2 是一个 Java Web 开发框架,提供了 JSON 插件来方便地处理 JSON 数据。在尝试构建这个示例时,开发者遇到了数据...

    extjs json所需jar包

    在使用ExtJS处理JSON数据时,通常需要依赖一些特定的Java档案(JAR)库,这些库提供了与JSON相关的解析和序列化功能。"extjs json所需jar包"指的是支持ExtJS与JSON交互的Java类库。 JSON(JavaScript Object ...

    ExtJs + Struts2 + JSON 程序总结

    ExtJs + Struts2 + JSON 是一种常见的前端与后端数据交互的技术组合,常用于构建富客户端应用。这里我们详细探讨一下这三个技术组件以及它们如何协同工作。 首先,ExtJs 是一个JavaScript库,用于创建复杂的、用户...

    EXTJS + Struct +mysql +json

    JSON(JavaScript Object Notation)作为轻量级的数据交换格式,由于其结构清晰、易于阅读和编写,被EXTJS广泛用于前后端的数据传输。 Structs作为MVC框架,负责处理HTTP请求,执行业务逻辑,并返回JSON格式的数据...

    Extjs Tree + JSON + Struts2 示例源代码

    这个示例中,ExtJS用于前端UI的构建,JSON作为数据交换格式,而Struts2则作为后端MVC框架处理请求和返回数据。 1. **ExtJS Tree**: ExtJS 是一个强大的JavaScript库,专门用于创建富客户端应用程序。其中的Tree组件...

    json的java的jar包

    而`extjs`是一个基于JavaScript的UI框架,主要用于构建富客户端应用程序,它与JSON的交互密切,因为JSON是向服务器发送和接收数据的标准格式。 总的来说,这个压缩包提供了一个完整的JSON处理环境,涵盖了从基本的...

    extjs tree + json+struts2示例源代码

    ExtJS Tree + JSON + Struts2 示例源代码详解 在Web开发中,构建交互式的用户界面是关键。ExtJS是一个强大的JavaScript库,尤其擅长创建桌面级的Web应用。本示例将详细介绍如何结合ExtJS的Tree组件、JSON数据格式...

    struts2+extjs+json整合实例

    ExtJS则是一款富客户端JavaScript库,用于创建数据驱动的、具有桌面级用户体验的Web应用。它提供了丰富的UI组件,如表格、图表、窗口、表单等,使得开发者可以方便地构建交互式界面。ExtJS使用MVC模式,也有自己的...

    SSH所有jar+jbpm+json+extjs

    jbpm指的是Business Process Management(业务流程管理)系统,json则是JavaScript Object Notation,一种轻量级的数据交换格式,而extjs是一个用于构建富客户端Web应用的JavaScript库。现在,我们来深入探讨这些...

    JPA STRUTS SPRING EXTJS JSON 同学录

    6. **classmates 文件夹**: 这个文件很可能是项目的核心源代码或者数据文件,包含了同学录相关的具体实现,如Java类、配置文件、HTML模板、CSS样式或JavaScript脚本。通过查看这些文件,我们可以深入理解项目的具体...

    Json包文件及其依赖包

    总的来说,这个压缩包的内容是用于在Java环境中,特别是在使用ExtJS框架的Web应用中,处理JSON数据所必需的工具和依赖。通过导入这些jar包,开发者可以轻松地实现在客户端和服务器之间的JSON数据交换,从而提升应用...

    extjs+struts2+hibernate+json登录程序

    Struts2可以通过配置插件支持JSON响应,使得后端可以直接返回JSON格式的结果,而ExtJS可以方便地解析这些数据,根据返回的状态来显示相应的提示信息,如登录成功或失败。 具体实现流程如下: 1. 用户在前端界面...

    ExtJs 2.0 GridPanel+Struts2 with JSON plugin[更新代码]

    JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,常用于Web服务和客户端之间的数据传输。在这个项目中,JSON 插件被用来在 ExtJS 和 Struts2 之间传递数据。 GridPanel 是 ExtJS 中的核心组件之一...

    extjs数据存储与传输详解

    **Reader**用于解析从服务器返回的数据。它可以解析JSON、XML等多种格式的数据,并将这些数据转换成Record对象。Reader是Proxy的一部分,通常由Proxy使用。 ### 七、高级Store **高级Store**是指使用了更多复杂...

    Extjs Tree + JSON + Struts2

    ExtJS Tree + JSON + Struts2 是一个常见的前端与后端交互技术组合,常用于构建动态的、数据驱动的树形结构界面。在这个项目中,`index.html` 是主页面,`tree.js` 包含了 ExtJS 的树组件相关的 JavaScript 代码,`...

Global site tag (gtag.js) - Google Analytics