spring+struts2+hibernate+extjs做的分页

WareCompanyDAOimpl代码:
// 显示厂家信息 (Callback 回调函数)
public List findPageAll(final int start, final int limit) {
return getHibernateTemplate().executeFind(new HibernateCallback() {
public Object doInHibernate(Session session)
throws HibernateException, SQLException {
Query q = session.createQuery("from WareCompany");
q.setFirstResult(start * limit);
q.setMaxResults(limit);
return q.list();
}
});
}

// 得到厂家信息总条数
public int totalRecord() {
int count = 0;

Integer l = (Integer) getHibernateTemplate().execute(new HibernateCallback() {
public Object doInHibernate(Session session)
throws HibernateException, SQLException {
Query q = session
.createQuery("select count(w.companyid) from WareCompany w");
return q.uniqueResult();
}
});
count = l.intValue();
return count;
}


WareCompanyAction 代码:
public class WareCompanyAction extends ActionSupport implements
ServletRequestAware, ServletResponseAware {
WareCompanyService wcs = null;

public WareCompanyService getWcs() {
return wcs;
}

public void setWcs(WareCompanyService wcs) {
this.wcs = wcs;
}

WareCompany wc = new WareCompany();

public WareCompany getWc() {
return wc;
}

public void setWc(WareCompany wc) {
this.wc = wc;
}

protected HttpServletRequest request;

public void setServletRequest(HttpServletRequest request) {
this.request = request;
}

protected HttpServletResponse response;

public void setServletResponse(HttpServletResponse response) {
this.response = response;
}

// 分页查询公司信息

public String SelectCompany() {

int totalProperty = wcs.totalRecord();
int start;
try {
start = Integer.parseInt(request.getParameter("start"));
} catch (NumberFormatException e1) {
start = 0;
}
int limit;
try {
limit = Integer.parseInt(request.getParameter("limit"));
} catch (NumberFormatException e1) {
limit = 3;
}
if (start > 0)
start = start / limit;
// Hibernate级联时,用json有错误,要把被级联的那个对象干掉,这样就没法显示被级联的对象了
// JsonConfig conf = new JsonConfig();
// conf.setExcludes(new String[]{"newstype"});

List list = wcs.findPageAll(start, limit);
JSONArray jsonArray = new JSONArray();
Iterator ite = list.iterator();
// 对list转变成的ite进行遍历,得到每个对象,并put到map里,再把map放到json数组里
while (ite.hasNext()) {
WareCompany news = (WareCompany) ite.next();
Map map = new HashMap();
// String time = new SimpleDateFormat("yyyy-MM-dd").format(news
// .getNewsDateTime());
// map.put("newsDateTime", time);

map.put("companyid", news.getCompanyid());
map.put("companyName", news.getCompanyName());
map.put("linKman", news.getLinKman());
map.put("phone", news.getPhone());
map.put("address", news.getAddress());
map.put("qiTafangShi", news.getQiTafangShi());
map.put("beiZhu", news.getBeiZhu());
jsonArray.add(map);
}
String jsonStr = jsonArray.toString();
// 为了分页,要加上start,limit,totalProperty,下面的符合json数据的形式
String jsonString = "{start:" + start + ",limit:" + limit
+ ",totalProperty:" + totalProperty + ",newsList:" + jsonStr
+ "}";
System.out.println("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");
System.out.println(jsonString);
System.out.println("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");
response.setContentType("text/html;charset=utf-8");
try { // 输出来,到jsp页面调用
response.getWriter().write(jsonString);
} catch (IOException e) {
e.printStackTrace();
}
return null;// 返回null
}
}

js代码:

// 显示进货厂家的表格
WareCompanyPanel = Ext.extend(Ext.grid.GridPanel, {
constructor : function() {
this["store"] = new Ext.data.Store( {
proxy : new Ext.data.HttpProxy( {
url : "./SelectWca.action",
method : "post"
}),
// reader解析
reader : new Ext.data.JsonReader( {
// autoLoad:true,
root : "newsList",// 解析指定json的节点
// 分页需要的属性(数量)
totalProperty : "totalProperty",
id : 'companyid'
}, Ext.data.Record.create(["companyid", "companyName",
"linKman", "phone", "address", "qiTafangShi",
"beiZhu"]))
});
WareCompanyPanel.superclass.constructor.call(this, {
//renderTo : Ext.getBody(),
height : 300,
width : 500,
colModel : new Ext.grid.ColumnModel([ {
header : "供应商ID",
width : 100,
sortable : true,
dataIndex : 'companyid'
}, {
header : "供应商",
width : 100,
sortable : true,
dataIndex : 'companyName'
}, {
header : "联系人",
width : 100,
sortable : true,
dataIndex : 'linKman'
}, {
header : "联系电话",
width : 100,
sortable : true,
dataIndex : 'phone'
}, {
header : "联系地址",
width : 100,
sortable : true,
dataIndex : 'address'
}, {
header : "其他联系方式",
width : 100,
sortable : true,
dataIndex : 'qiTafangShi'
}, {
header : "备注",
width : 100,
sortable : true,
dataIndex : 'beiZhu'
}]),
/*
* store : new Ext.data.JsonStore( { autoLoad : true,//
* 等于store.load(); data : [ { name : "sss", age : 28, sex : "女" }, {
* name : "sss", age : 28, sex : "男" }], fields : ["id", "name",
* "age", "sex"] }),
*/
selModel : new Ext.grid.RowSelectionModel( {
singleSelect : true,
listeners : {
"rowselect" : {
// 调用选中行的事件
// fn:onRowSelect,
// fn:function(_sel, _index , _r){
// alert(_index);
// °获取上面的formPanel
// Ext.getCmp("view_form").getForm().loadRecord(_r);
// this.fireEvent("rowselect",_r);
// },
// 作用域
// scope:this
}
}
}),
// PagingToolbar
bbar : new Ext.PagingToolbar( {
pageSize : 5,
store : this.store,
displayInfo : true,
firstText : '第一页',
lastText : '最后一页',
nextText : '下一页',
prevText : '上一页',
refreshText : '刷新',
beforePageText : '页',
afterPageText : "至 {0}",
displayMsg : '显示第 {0} 条到 {1} 条记录,一共 {2} 条',
emptyMsg : '暂无数据'
// items:
})
} );
this.getStore().load( {
params : {
start : 0,
limit : 5
}
});
}
});
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值