ExtJs的Grid组件配合struts2返回json数据
2015-02-13 11:48
274 查看
第一次使用extjs的grid组件,简单做了一个分页条。主要目地是把数据库中的数据呈现到前端的grid中。过程记录如下
首先是JSP页面代码:
<div id="grid" style="width:400px;height:300px"></div>
然后是JS代码:
Ext.onReady(function(){
var cm = new Ext.grid.ColumnModel([
{header:'编号', dataIndex:'id', width:250},
{header:'名字', dataIndex:'name'},
{header:'年纪', dataIndex:'age'},
{header:'地址', dataIndex:'address'}
]);
var store = new Ext.data.Store({
proxy: new Ext.data.HttpProxy({url: path + '/index_query.action'}),
reader: new Ext.data.JsonReader({
totalProperty: "total",
root: "rows"
},[
{name:'id'},
{name:'name'},
{name:'age'},
{name:'address'}
])
});
var grid = new Ext.grid.GridPanel({
renderTo: 'grid', // 渲染到id=grid在div
autoHeight: true,
store: store,
cm: cm,
width: 600,
height: 300,
frame: true,
forceFit: true,
stripeRows: true,
bbar: new Ext.PagingToolbar({
pageSize: 10,
store: store,
displayInfo: true,
displayMsg: "显示{0}条到{1}条记录,一共{1}条记录",
emptyMsg: "没有记录"
})
});
// 如果配置了分页工具条,store.load()就必须在构造表格以后执行,否则分页工具条不起作用
store.load({params:{start:0, limit:10}});
});
Action中的代码:
public class IndexAction extends BaseAction<Person> {
private static final long serialVersionUID = 6187270463225630432L;
@Resource
private PersonService personService; // 用到了spring框架
ExtGrid<Person> extGrid = new ExtGrid<Person>(); //
这里的ExtGrid只是一个简单的javaBean对象
public ExtGrid<Person> getExtGrid() {
return extGrid;
}
public void setExtGrid(ExtGrid<Person> extGrid) {
this.extGrid = extGrid;
}
// limit 10
// start 0
private Integer start;
private Integer limit;
public void setStart(Integer start) {
this.start = start;
}
public void setLimit(Integer limit) {
this.limit = limit;
}
public String query() {
System.out.println("start = " + start);
System.out.println("limit = " + limit);
List<Person> list = personService.findAll();
extGrid.setRows(list);// 设置数据
extGrid.setTotal(list.size()); // 设置总数
return SUCCESS; // 这里要返回String , 如果方法是void的话,界面没数据返回
}
}
struts.xml文件的配置(重点是返回JSON的配置)
<struts>
<package name="json" namespace="/" extends="json-default">
<action name="index_*" class="indexAction" method="{1}">
<result type="json">
<!-- 这里指定将被Struts2序列化的属性,该属性在action中必须有对应的getter方法 -->
<param name="root">extGrid</param>
</result>
</action>
</package>
最终效果如下:
经过查询了很多资料,才总结出这个做法。先记录下来,以后再慢慢改进。。。
首先是JSP页面代码:
<div id="grid" style="width:400px;height:300px"></div>
然后是JS代码:
Ext.onReady(function(){
var cm = new Ext.grid.ColumnModel([
{header:'编号', dataIndex:'id', width:250},
{header:'名字', dataIndex:'name'},
{header:'年纪', dataIndex:'age'},
{header:'地址', dataIndex:'address'}
]);
var store = new Ext.data.Store({
proxy: new Ext.data.HttpProxy({url: path + '/index_query.action'}),
reader: new Ext.data.JsonReader({
totalProperty: "total",
root: "rows"
},[
{name:'id'},
{name:'name'},
{name:'age'},
{name:'address'}
])
});
var grid = new Ext.grid.GridPanel({
renderTo: 'grid', // 渲染到id=grid在div
autoHeight: true,
store: store,
cm: cm,
width: 600,
height: 300,
frame: true,
forceFit: true,
stripeRows: true,
bbar: new Ext.PagingToolbar({
pageSize: 10,
store: store,
displayInfo: true,
displayMsg: "显示{0}条到{1}条记录,一共{1}条记录",
emptyMsg: "没有记录"
})
});
// 如果配置了分页工具条,store.load()就必须在构造表格以后执行,否则分页工具条不起作用
store.load({params:{start:0, limit:10}});
});
Action中的代码:
public class IndexAction extends BaseAction<Person> {
private static final long serialVersionUID = 6187270463225630432L;
@Resource
private PersonService personService; // 用到了spring框架
ExtGrid<Person> extGrid = new ExtGrid<Person>(); //
这里的ExtGrid只是一个简单的javaBean对象
public ExtGrid<Person> getExtGrid() {
return extGrid;
}
public void setExtGrid(ExtGrid<Person> extGrid) {
this.extGrid = extGrid;
}
// limit 10
// start 0
private Integer start;
private Integer limit;
public void setStart(Integer start) {
this.start = start;
}
public void setLimit(Integer limit) {
this.limit = limit;
}
public String query() {
System.out.println("start = " + start);
System.out.println("limit = " + limit);
List<Person> list = personService.findAll();
extGrid.setRows(list);// 设置数据
extGrid.setTotal(list.size()); // 设置总数
return SUCCESS; // 这里要返回String , 如果方法是void的话,界面没数据返回
}
}
struts.xml文件的配置(重点是返回JSON的配置)
<struts>
<package name="json" namespace="/" extends="json-default">
<action name="index_*" class="indexAction" method="{1}">
<result type="json">
<!-- 这里指定将被Struts2序列化的属性,该属性在action中必须有对应的getter方法 -->
<param name="root">extGrid</param>
</result>
</action>
</package>
最终效果如下:
经过查询了很多资料,才总结出这个做法。先记录下来,以后再慢慢改进。。。
相关文章推荐
- Extjs与Struts2交互,返回JSON数据的两种实现方式
- Extjs与Struts2交互,返回JSON数据的两种实现方式
- 与ASP.NET服务器端结合返回JSON数据实现ExtJS GridPanel客户端分页
- Struts2与ExtJs Grid结合使用json格式数据
- struts2 返回json数据(结合Extjs)
- struts2拦截器如何返回json数据?如何使用Jquery(ExtJs)接收拦截器返回的数据?
- struts2 返回json数据(结合Extjs)
- IE6中运行EXTJS中某些组件无法解析DOMINO产生的JSON数据问题的解决办法
- extjs,返回json数据,尝试alert一个window
- Extjs中grid采用json进行数据绑定的实例
- Struts2中采用Json返回List对象数据为空解决方案
- extjs的grid应用(java 使用json绑定数据 翻页)
- jquery调用struts2,返回script/text/json格式的数据
- struts 2中使用json 返回数据给Extjs
- jquery通过struts2请求,返回json数据,在jsp页面形成二级联动下拉列表
- 关于jQuery获取Action返回的JSON数据 项目真实案例 记录(Struts2)
- 整合struts2,jquery,json。采用jquery ajax,从struts2 action返回json类型数据
- java代码用于返回JSON或者XML数据(extJs)
- EXTjs grid与json数据
- struts2的action中返回json格式的数据