hibernate+Struts2+jquery easyui 做分页处理时的一些问题
来源:互联网 发布:史丹利快报淘宝店铺 编辑:程序博客网 时间:2024/06/04 19:23
合在一起做的时候,问题就多了。
1.
select count(*) as col_0_0_ from JBIT.GOODS goods0_
看到上面的sql,马上就会想到,获取所有记录时,面对long型的转换,修改Dao中代码。
Integer.parseInt(session.createQuery(" select count(*) from Goods").uniqueResult().toString())
2.ajax请求时,不报异常,通过浏览器查看状态。
很明显,注意了,看hibernate与struts2有没有配置好,有没有共同的jar包存在,hibernate的xml文件有没有配置。
500 Internal Server Error
3.这个问题是出在jQuery easy ui 上的。看英语,说明rows参数有问题。
Method "setRows" failed for object action.GoodsAction@3c3d683a
先说一下分页的配置。
$('#dg').datagrid({ url : 'goods', method:'get', columns : [ [ { field : 'id', title : '编号', width : 100 }, { field : 'name', title : '名称', width : 100 }, { field : 'price', title : '价格', width : 100, align : 'center' },{ field : 'opr', title : '操作', width : 100, align : 'center', formatter : function(value, row, index) { return "<a href='javascript:oprdata("+ row.id + ")'>删除</a>"; } } ] ], fitColumns : true,//自适应宽度,防止水平滚动 iconCls:'icon-search', striped:true ,//隔行变色 pagination : true,//显示底部分页栏 pagePosition : "bottom", $('#dg').datagrid({ url : 'goods', method:'get', columns : [ [ { field : 'id', title : '编号', width : 100 }, { field : 'name', title : '名称', width : 100 }, { field : 'price', title : '价格', width : 100, align : 'center' },{ field : 'opr', title : '操作', width : 100, align : 'center', formatter : function(value, row, index) { return "<a href='javascript:oprdata("+ row.id + ")'>删除</a>"; } } ] ], fitColumns : true,//自适应宽度,防止水平滚动 iconCls:'icon-search', striped:true ,//隔行变色 pagination : true,//显示底部分页栏 pageNumber : 1,//pagination : true时才生效 pageSize:10,//每页显示的记录条数,默认为10 //pageSize: defaultPageSize, pageList: [10,15,30,45],//可以设置每页记录条数的列表 beforePageText: '第',//页数文本框前显示的汉字 afterPageText: '页 共 {pages} 页', displayMsg: '当前显示 {from} - {to} 条记录 共 {total} 条记录' pagePosition : "bottom", rownumbers:true,//行号 loadMsg : "玩命加载中", singleSelect : true,//只让单选 frozenColumns:[[ {field:'ck',checkbox:true} ]], title:"商品订单管理" }); rownumbers:true,//行号 loadMsg : "玩命加载中", singleSelect : true,//只让单选 frozenColumns:[[ {field:'ck',checkbox:true} ]], title:"商品订单管理" });
这样配置是不会出现上面的异常,若少了pageList: [10,15,30,45],就可能报了。
当然了,有的人喜欢把分页的那几个单独的提出来:
var p = $('#dg').datagrid('getPager'); $(p).pagination({ pageNumber : 1,//pagination : true时才生效 pageSize:10,//每页显示的记录条数,默认为10 //pageSize: defaultPageSize, pageList: [10,15,30,45],//可以设置每页记录条数的列表 beforePageText: '第',//页数文本框前显示的汉字 afterPageText: '页 共 {pages} 页', displayMsg: '当前显示 {from} - {to} 条记录 共 {total} 条记录' });
注意了,这样写,肯定是没问题,但是如果你在pageList: [10,15,30,45],写了pageList: [5,10,15,30,45],那么第一页依旧还是显示的是默认值10条记录。这时你就需要写额外的代码控制只出现5行了。麻烦。
4.Json 数据的struts的配置。
<package name="default" namespace="/" extends="json-default"> <action name="goods" class="action.GoodsAction" method="execute"> <result type="json"> <param name="root">map</param> </result> </action>
还有action的写法,也贴出来。
public class GoodsAction extends ActionSupport { private int page; private int rows; private Map<String ,Object> map; public int getPage() { return page; } public void setPage(int page) { this.page = page; } public int getRows() { return rows; } public void setRows(int rows) { this.rows = rows; } public Map<String, Object> getMap() { return map; } public void setMap(Map<String, Object> map) { this.map = map; } /** * @return */ public String execute() { if (page<=0) { page=1; } map=new HashMap<String, Object>(); IGoodsBiz biz=new GoodsBizImpl(); int totalCount=biz.findCount(); List<Goods> list=biz.findPage(page, rows); map.put("total", totalCount); map.put("rows", list); System.out.println(totalCount);//测试用 System.out.println(list.size());//测试用 return SUCCESS; }}
贴一个删除的方法。先设置。
{ field : 'opr', title : '操作', width : 100, align : 'center', formatter : function(value, row, index) { return "<a href='javascript:oprdata("+ row.id + ")'>删除</a>"; } }jquery 方法。ajax请求
function oprdata(id){
if (confirm(“确认删除吗?”)) {
.get(“deleteGoods”, {“id”:id}, function(data){
if(data==1){
//刷新数据(‘#dg’).datagrid(‘reload’);
}
}
)};
“`
不得不提的是,上面的配置分页时,如果你写了method:’get’,在某些时候,比如对数据做了增删改,数据已经修改了,但是页面不刷新,考虑将get换成post,或者直接去掉。亲测有效。
做的时候,一步一个脚印,先分析逻辑,再写代码,项目还是很好写的。
- hibernate+Struts2+jquery easyui 做分页处理时的一些问题
- Struts2绑定Jquery EasyUI的Datagrid分页
- Struts2绑定Jquery EasyUI的Datagrid分页
- 11级_Java_曹建波 04.07 jQuery easyUI +struts2+hibernate+oracle 实现 admin用户的分页操作
- 自己在做项目时用easyUI解决的分页的一些东西
- Struts2 + easyui的DataGrid 分页
- 使用Struts2和jQuery EasyUI实现简单CRUD系统(七)——数据分页处理
- 使用Struts2和jQuery EasyUI实现简单CRUD系统(七)——数据分页处理
- jQuery easyUI分页的实现
- Hibernate做开发时遇到的一些问题
- Struts2的分页处理
- jquery-easyui必填项隐藏问题的处理方案
- jquery-easyui必填项隐藏问题的处理方案
- 如何用easyUI做Oracle的分页
- 如何用easyUI做Oracle的分页
- struts2+easyui分页排序
- 11级_Java_曹建波 04.07 jQuery easyUI tree +struts2+hibernate +mysql 实现 三级联动的案例
- jQuery easyUI tree +struts2+hibernate +mysql 实现 三级联动的案例
- @query语句能直接返回bean吗
- 学生知识点总结之二
- 342. Power of Four*
- 快速排序精简版总容易理解版
- js实现table列表中的隔行变色
- hibernate+Struts2+jquery easyui 做分页处理时的一些问题
- Java 数组
- 使用GCD
- addShutdownHook+ @Scheduled(cron = "0 0/1 * * ?" )
- 调整数据库栏位的位置
- 【华为 OJ 】合法IP
- [USACO Training] Section 1.3
- CSU-ACM2016暑假集训比赛8
- [LeetCode]--139. Word Break(Python)