`
zengbo0710
  • 浏览: 414741 次
社区版块
存档分类
最新评论

初步搭建yui-ext(Ajax)的开发环境(第一部分:后台->前台数据交换)

阅读更多

如果看过yui-ext的例子,相信大家很想把它用在实际项目中去,我这两个星期都在研究它,国内几乎没有资料,只能从http://www.jackslocum.com的论坛找,我现在简单介绍一下我的实际开发环境:

我的项目原来的开发环境是Struts+Spring1.2.8+Hibernate3.1.2,现在要把页面的jsp+jstl,和Struts的Action转换成yui-ext的Ajax页面,简单实现数据列表、翻页和添加、修改、删除等功能。

1. 数据交换,要从Struts环境的Action通过request对象传递数据给jsp页面,如果用Ajax,比较常用的是XML转换和Json转换,我选择了Json,因为用json-lib包可以在java端用很方便的把对象转换成Json格式,在页面可以调用脚本eval()转换成javascript的数组对象。

1) json-lib转换java对象(下载json-lib:http://json-lib.sourceforge.net)
Action例子:(example.do)代码中加入:
response.setContentType("text/xml;charset=utf-8");
JSONArray jsonArray = JSONArray.fromObject(list);
response.getWriter().print("{datalist:" + jsonArray + "}");
return null;
简单说明:把action的return mapping改成null,因为现在使用response对象进行数据传递,fromObject(list)中的list包括就是页面需要调用显示的数据,可以是其他java对象,String、bean或Map。

2) JSONDataModel调用Action(example.do)
yui-ext通过JSONDataModel.js把json格式转换成javascript的数组对象
js例子:
var schema = {
root: 'datalist',
id: 'nothing',
fields: ['a','b', 'c', 'd']

dataModel= new YAHOO.ext.grid.JSONDataModel(schema);
dataModel.load('http://xxx/example.do');

说明:schema的root参数要和action传递的json数据头list对应,这里new JSONDataModel后,JSONDataModel会把example.do返回的json数据转换成dataModel的数组,JSONDataModel继承于LoadableDataModel,JSONDataModel只复杂转换json数据,其他由继承的类实现,这是yui-ext的特点,你可以自己写DataModel继承父类,转换自己的数据格式,yui-ext提供了JSONDataModel和XMLDataModel两种数据格式转换。

3) 使用grid显示dataModel数据
js例子:
var grid = new YAHOO.ext.grid.Grid('example-grid', dataModel, colModel);
grid.render();
jsp页面例子:
<div id="example-grid" style="border: 1px solid #cccccc; overflow: hidden; width: 535px; height: 225px;"></div>
说明:colModel的使用看example,grid绑定dataModel后,在页面的<Div>显示grid。  



分享到:
评论
1 楼 lailai_yyl 2007-10-03  
受教,另外我想请教一下在使用AJAX的情况下如何使用Struts的ActionForm 进行数据验证

相关推荐

    YUI-EXT使用详解

    3. **数据绑定(Data Binding)**:YUI-EXT支持数据绑定,允许UI组件与后台数据模型直接关联。当数据模型发生变化时,UI会自动更新,反之亦然。这极大地简化了数据驱动的界面开发。 4. **表单(Forms)**:YUI-EXT...

    YUI-EXT

    YUI-EXT开发学习帮助手册,自己收集网上资料整理的。

    YUI-ajax框架开发文档

    在"YUI-ajax框架开发文档"中,我们可以深入探讨YUI如何通过其Ajax组件实现异步数据通信。 YUI中的Ajax框架主要由`YAHOO.util.Connect`和`YAHOO.widget.DataSource`两个关键部分组成。`YAHOO.util.Connect`是YUI的...

    yuicompressor-maven-plugin

    这个插件是基于YUI Compressor,一个由Yahoo开发的开源工具,它能有效地压缩和混淆代码,从而减少文件大小,提升网页加载速度,并降低服务器带宽消耗。 ### 一、Maven插件介绍 Maven是Java领域广泛使用的项目管理...

    YUI-EXT教材及实例

    我们将讲讲怎么使用Ext,来完成一些JavaScript常见的任务.这是关于Ext的入门教程。

    yui-yuidoc-yuidoc-50-529-gc631758

    YUIDoc 是 YUI 项目的一部分,是一个用于生成 API 文档的工具,它使得开发者能够清晰地理解库和框架的结构、功能和使用方法。 【描述】"yui-yuidoc-yuidoc-50-529-gc631758" 没有提供具体的描述信息,但我们可以...

    Ajax(yui-slideshow)

    它通过在后台与服务器进行少量数据交换,使得网页实现异步更新,提升了用户体验。YUI(Yahoo! User Interface Library)是雅虎推出的一个开源JavaScript库,提供了丰富的功能,包括CSS样式、动画效果、事件处理以及...

    Professional JavaScript Frameworks Prototype, YUI, Ext JS, Dojo and MooTools.pdf

    - **第一部分:Prototype** - **第1章:扩展和增强DOM元素** 讨论如何利用Prototype框架来操作和增强DOM元素,包括选择器、创建和操作元素等。 - **第2章:处理跨浏览器事件** 介绍如何在不同浏览器之间实现...

    yuicompressor-yui compressor

    雅虎推出的一款javascript压缩工具。有JAVA版本和.NET版本。 yuicompressor-2.4.2.jar yuicompressor-2.4.7.jar jsZip.exe yuicompressor yui compressor js压缩工具 javascript压缩工具 css压缩工具 ----------...

    yuicompressor-2.4.8.jar

    -type js --charset utf-8 -v src.js &gt; packed.js //压缩CSS java -jar yuicompressor-2.4.2.jar --type css --charset utf-8 -v src.css &gt; packed.css 语法: java -jar yuicompressor-x.y.z.jar [options] [input ...

    学习YUI.Ext 第六天--关于树TreePanel(Part 1)

    在本文中,我们将深入探讨YUI.Ext库中的一个重要组件——TreePanel。TreePanel是一个用于构建交互式树形结构视图的组件,它在YUI.Ext 0.40版本中首次引入。尽管YUI自身已经提供了TREE VIEW组件,但开发者Jack Slocum...

    yui的扩展ext.rar

    《深入理解YUI扩展EXT——构建高效前端UI与Ajax应用》 YUI(Yahoo! User Interface Library)是由雅虎公司开发的一套开源JavaScript库,它为开发者提供了丰富的UI组件和功能,以帮助创建高性能、易用的Web应用程序...

    前端开源库-yui-compressor

    YUI Compressor是一款由雅虎开发的前端代码压缩工具,主要用于优化JavaScript和CSS文件,提升网页加载速度。这款开源库对于前端开发者来说至关重要,因为它能够有效地减小代码体积,降低网络传输的数据量,从而提高...

    grunt-yui-compressor-源码.rar

    总之,grunt-yui-compressor是前端开发中不可或缺的工具之一,它结合了Grunt的自动化能力和YUI Compressor的压缩效率,使得前端资源管理更加便捷高效。通过理解其源码,开发者可以更好地利用这个工具,优化自己的...

    基于J2EE的Ajax宝典

    在J2EE(Java 2 Enterprise Edition)环境中,Ajax的应用极大地提升了用户体验,因为它允许后台与服务器进行异步数据交换,而用户界面仍然保持交互性和响应性。本资料《基于J2EE的Ajax宝典》旨在通过实例深入浅出地...

    yui.zip_YUI aj_ajax_ajax java_javascript_javascript YUI Ajax

    5. **connection**:AJAX连接模块,是实现异步数据交换的核心部分,允许在后台与服务器通信而无需刷新页面。 6. **calendar**:日历组件,为Web应用提供日期选择功能。 7. **dragdrop**:拖放模块,让用户能够通过...

    extjs-ajax

    ### ExtJS-Ajax 相关知识点详解 #### 一、ExtJS 概述 ##### 1.1 架构特点 - **定义**: ExtJS 是一个功能强大的客户端 JavaScript 库,用于构建现代化、响应迅速的 Web 应用。它不仅支持 AJAX 技术,还能实现丰富的...

    eclipse yuicompressor-maven-plugin

    YUI Compressor是由雅虎开发的一款开源工具,用于压缩JavaScript和CSS代码,通过删除空格、注释和不必要的字符,从而减小文件大小,提升网页加载速度。它支持两种压缩模式:混淆(minify)和无混淆(non-minify),...

Global site tag (gtag.js) - Google Analytics