Ext2.0 学习系列 ------- Ext Grid (二)
Ext2.0 学习系列(转) ------- Ext Grid (一)中已经介绍了静态的Grid如何显示,本章要简单的讲述一下,如何使用Struts和JSON,在Grid上显示数据。
JSON (JavaScript Object Notation)一种简单的数据格式,比xml更轻巧。JSON 是JavaScript 原生格式,这意味着在JavaScript 中处理JSON 数据不需要任何特殊的API 或工具包。
JSON的规则很简单: 对象是一个无序的“‘名称/值’对”集合。一个对象以“{”(左括号)开始,“}”(右括号)结束。每个“名称”后跟一个“:”(冒号);“‘名称/值’ 对”之间使用“,”(逗号)分隔。具体细节参考http://www.json.org/json-zh.html。
最近正好在学习Struts2.0,在此记录一下Struts2中使用JSON的一种方法。
1. 首先当然是搭建好你的Struts2的环境
2. 到http://json-lib.sourceforge.net下载需要依赖的jar包,json-lib-2.1-jdk15.jar。json还依赖了以下的第三方包:
commons-beanutils.jar, commons-collections-3.1.jar, commons-lang-2.3.jar, ezmorph-1.0.4.jar
3. 下载JSON插件(jsonplugin-0.19.jar),地址:http://code.google.com/p/jsonplugin/downloads/list,这个很好用!呵呵
4. 创建Action如下:Java代码
public class JsonAction extends ActionSupport {
List<Person> pList = new ArrayList<Person>();
public String execute() {
Person p1 = new Person();
Person p2 = new Person();
p1.setName("shenchong");
p1.setSex("男");
p2.setName("sophia");
p2.setSex("女");
pList.add(p1);
pList.add(p2);
return SUCCESS;
}
@JSON(name = "Person")
public List<Person> getPList() {
return pList;
}
}
public class JsonAction extends ActionSupport {
List<Person> pList = new ArrayList<Person>();
public String execute() {
Person p1 = new Person();
Person p2 = new Person();
p1.setName("shenchong");
p1.setSex("男");
p2.setName("sophia");
p2.setSex("女");
pList.add(p1);
pList.add(p2);
return SUCCESS;
}
@JSON(name = "Person")
public List<Person> getPList() {
return pList;
}
}
其中,Person类是一个最简单的POJO,有两个属性name和sex。
5. 配置ActionXml代码
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<package name="com.demo" extends="json-default">
<action name="Json" class="com.demo.JsonAction">
<result type="json"/>
</action>
<!-- Add your actions here -->
</package>
</struts>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<package name="com.demo" extends="json-default">
<action name="Json" class="com.demo.JsonAction">
<result type="json"/>
</action>
<!-- Add your actions here -->
</package>
</struts>
上面配置文件的“package”元素和以往不同的是,它扩展了“json- default”而不是“struts-default”。“json-default”是在jsonplugin-0.19.jar包里的struts -plugin.xml中定义的。该文件同时定义了“json”的结果类型,有兴趣的朋友可以打开此文件看看。
如果你现在就访问http://localhost:8080/XXXX/Json.action,会出现出现下载文件对话框,原因是JSON插件将HTTP响应(Response)的MIME类型设为 “application/json”。把文件下载下来,用记事本打开,内容如下:
{"Person":[{"name":"shenchong","sex":"男"},{"name":"sophia","sex":"女"}]}
6. EXT的js这样写就可以了
Java代码
Ext.onReady(function(){
var store = new Ext.data.Store({
proxy: new Ext.data.HttpProxy({
url:'Json.action',
method: 'GET'
}),
reader: new Ext.data.JsonReader({
root: 'Users',
id: 'id'
},[{name: 'name', mapping: 'name'},
{name: 'sex', mapping: 'sex'}]
)
});
var column = new Ext.grid.ColumnModel([
{header: '姓名', dataIndex: 'name', width: 100},
{header: '性别', dataIndex: 'sex', width: 50}
]);
column.defaultSortable = true;
});
Ext.onReady(function(){
var store = new Ext.data.Store({
proxy: new Ext.data.HttpProxy({
url:'Json.action',
method: 'GET'
}),
reader: new Ext.data.JsonReader({
root: 'Users',
id: 'id'
},[{name: 'name', mapping: 'name'},
{name: 'sex', mapping: 'sex'}]
)
});
var column = new Ext.grid.ColumnModel([
{header: '姓名', dataIndex: 'name', width: 100},
{header: '性别', dataIndex: 'sex', width: 50}
]);
column.defaultSortable = true;
});
后面就是创建一个Grid显示了。
Java代码
var grid = new Ext.grid.GridPanel({
el: 'listUser-grid',
width:700,
height:500,
title:'用户表',
store: store,
cm: column,
trackMouseOver: false,
sm: new Ext.grid.RowSelectionModel(),
bbar: new Ext.PagingToolbar({
pageSize: 25,
store: store,
displayInfo: true,
displayMsg: ' 本页显示从{0} 到 {1} 条,共 {2} 条数据',
emptyMsg: "没有可以显示的数据"
})
});
grid.render();
store.load();
var grid = new Ext.grid.GridPanel({
el: 'listUser-grid',
width:700,
height:500,
title:'用户表',
store: store,
cm: column,
trackMouseOver: false,
sm: new Ext.grid.RowSelectionModel(),
bbar: new Ext.PagingToolbar({
pageSize: 25,
store: store,
displayInfo: true,
displayMsg: ' 本页显示从{0} 到 {1} 条,共 {2} 条数据',
emptyMsg: "没有可以显示的数据"
})
});
grid.render();
store.load();
jsp页面上加入一个div就可以了,id一定要是listUser-grid
分享到:
相关推荐
EXT2.0 GRID组件是EXT库中的核心部分,它允许开发者以表格形式显示数据,并提供了一系列功能,如排序、分页、筛选、编辑等。GRID不仅外观美观,而且性能高效,能够处理大量数据并提供流畅的用户体验。 在EXT2.0 ...
EXT2.0-API是关于EXT JavaScript库的一个重要版本的接口文档。EXT是一个广泛使用的前端开发框架,特别是用于构建...通过深入学习和理解EXT2.0的API,开发者可以充分利用EXT的强大功能,为用户提供高质量的交互体验。
这样的资源通常会涵盖EXT2.0的基本组件,如表格(Grid)、面板(Panel)、窗口(Window)、菜单(Menu)等,以及布局管理、数据绑定、事件处理等方面的知识。 ExtJS学习.pdf则可能是另一个EXT JS的学习资料,可能...
《GWT-EXT2.0最佳实践教程》源代码打包下载资源主要涵盖了Google Web Toolkit (GWT) 和EXT-JS 2.0的结合使用,提供了丰富的实践案例和示例代码,旨在帮助开发者深入理解和应用这两项技术。GWT是一款强大的JavaScript...
Ext2.0包含了一系列的UI组件,如面板(Panel)、表格(Grid)、表单(Form)、菜单(Menu)、按钮(Button)、工具栏(Toolbar)、树形视图(Tree)等。这些组件都具有高度可配置性和可扩展性,能够满足各种复杂的...
7. **丰富的图表组件**:EXT2.0提供了一系列图表组件,如柱状图、饼图、线图等,用于数据可视化。 **EXT2.0 API** EXT2.0的API是其强大的基础,它包含了大量预定义的类和方法,供开发者在构建应用时调用。API分为...
Grid是Ext2.0中用于展示数据的重要组件之一,它不仅能够显示各种格式的数据(如二维数组、JSON或XML),还支持数据的排序、过滤和分页等功能。Grid的核心在于`Ext.grid.GridPanel`类及其相关的配置项。 ##### 1. ...
1. **组件系统**:EXT 2.0拥有一个强大的组件模型,包括窗口(Window)、表格(Grid)、面板(Panel)、按钮(Button)等。这些组件可以方便地组合和嵌套,实现复杂界面布局。 2. **数据绑定**:EXT 2.0支持数据...
学习example中的实际应用案例,如grid的拖拽和树的拖拽,可以帮助我们更好地掌握EXT 2.0的使用技巧,同时提升项目开发能力。 总之,EXT 2.0的源码和示例为开发者提供了一条深入理解EXT工作机制的路径,通过学习和...
1. **组件系统**:EXT2.0拥有强大的组件体系,包括窗口(Window)、面板(Panel)、表格(Grid)、表单(Form)、树形控件(Tree)等。每个组件都有其特定的属性、配置选项、事件和方法,这些在API文档中都有详细的...
1.3. 看看ext-2.0的文档 1.4. 为什么有的例子必须放在服务器上才能看到效果? 1.5. 为什么自己按照例子写的代码,显示出来总找不到图片 1.6. 我们还需要什么? 1.7. 入门之前,都看helloworld。 1.7.1. 直接使用下载...
在Ext JS 2.0中,Grid组件提供了丰富的交互性和定制性,如排序、过滤、编辑等功能。 分页机制的实现主要涉及两个部分:前端Grid组件和后端PHP服务。前端负责展示数据和处理用户交互,后端则负责数据的获取和分页...
Grid组件在Ext2.0框架中主要用于展示表格形式的数据,支持多样的数据源类型,包括二维数组、JSON数据和XML数据,甚至是用户自定义的数据格式。这一灵活性得益于框架提供的`Ext.data.Store`,它作为数据与Grid间的...
EXT 2.0 正式版本的发布标志着一个重要的里程碑,EXT 是一款广泛使用的JavaScript库,专注于构建富互联网应用程序(RIA)。...开发者可以通过学习和掌握EXT 2.0,为自己的项目注入更多创新元素和功能。
这个压缩包"ext2.0.rar"包含了EXT Grid 2.0的所有资源和文件,帮助开发者实现描述中提到的各种高级特性。 1. **本地与远程排序**: 在EXT Grid 2.0中,用户可以对显示的数据进行本地排序,这意味着排序操作在客户端...
4. **表单组件**:EXT 2.0 提供了一系列完善的表单元素,如文本框、复选框、下拉列表等,并且支持复杂的表单布局和验证。 5. **Panel**:EXT 2.0 的 Panel 组件可作为容器承载其他组件,具有可折叠、标题、工具栏等...
Ext 2.0 是一个基于JavaScript的开源框架,主要用于构建富客户端...总之,Ext 2.0中文API文档是学习和使用该框架的关键资源,它为开发者提供了全面的参考和指导,有助于高效地开发出功能丰富、界面美观的Web应用程序。
EXT2.0是EXT框架的一次重大更新,它带来了许多改进和新功能,旨在提高开发者的体验和应用程序的性能。以下是对EXT2.0中关键知识点的详细解释: 1. **组件模型 (Component Model)**: 在EXT2.0中,Component和...
5. **表格(Grid)**:Ext2.0的表格组件功能强大,可以展示大量数据并提供编辑功能。表格支持行选择、排序、分页和自定义列渲染。 6. **表单(Forms)**:Ext2.0的表单组件包括各种输入控件,如文本框、下拉框、复...