Hivernate与primeface分页查询、显示出现的现象

1、前台xhtml
===============================

<p:panel id="userList" header="用户列表" width="100%">
<p:dataTable id="dataTable" var="user" value="#{userBean.data}"
paginator="true" paginatorPosition="bottom"
paginatorTemplate="{CurrentPageReport} {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"
lazy="true" rows="#{userBean.maxItem}"
rowsPerPageTemplate="5,10,15,50,200" paginatorAlwaysVisible="true"
resizableColumns="false">
<p:column>
<f:facet name="header">
<h:outputText value="账号" />
</f:facet>
<p:commandLink action="#">
<h:outputText value="#{user.accountNum}" />
</p:commandLink>
</p:column>

<p:column>
<f:facet name="header">
<h:outputText value="姓名" />
</f:facet>
<h:outputText value="#{user.userName}" />
</p:column>



2、backbean
===============================

package com.ecm.view.bean;

import java.io.Serializable;
import java.util.List;

import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ManagedProperty;
import javax.faces.bean.RequestScoped;
import javax.faces.context.FacesContext;
import javax.servlet.http.HttpSession;

import org.primefaces.model.LazyDataModel;

import com.ecm.entity.User;
import com.ecm.service.UserService;
import com.ecm.util.BaseException;

@ManagedBean(name="userBean")
@RequestScoped
public class userBean implements Serializable {

/** 序列号ID */
private static final long serialVersionUID = -8029135638641882005L;
private User user;
@ManagedProperty(value="#{userService}")
private UserService userService;

private List<User> userList;

private LazyDataModel<User> lazyModel;

private int first = 0;

private int maxItem = 50;

public userBean() {
user = new User();
}

/**
* 获取表格值
* @return
*/
public LazyDataModel<User> getData(){
[color=red][b]lazyModel = userService.getUserList(first,maxItem);[/b][/color]
return lazyModel;
}

public UserService getUserService() {
return userService;
}

public void setUserService(UserService userService) {
this.userService = userService;
}

public User getUser() {
return user;
}

public void setUser(User user) {
this.user = user;
}

public LazyDataModel<User> getLazyModel() {
return lazyModel;
}

public void setLazyModel(LazyDataModel<User> lazyModel) {
this.lazyModel = lazyModel;
}

public int getMaxItem() {
return maxItem;
}

public void setMaxItem(int maxItem) {
this.maxItem = maxItem;
}

public int getFirst() {
return first;
}

public void setFirst(int first) {
this.first = first;
}
}


DAO层

===========================================

public LazyDataModel<User> getUserList(int frist,int maxItem) {
final int fristStr = frist;
final int maxItemStr = maxItem;
LazyDataModel<User> lazyModel = new LazyDataModel<User>() {
private static final long serialVersionUID = 1L;

final String hql = "from User user";
@SuppressWarnings("unchecked")
final List<User> userList = (List<User>) getHibernateTemplate()
.execute(new HibernateCallback<Object>() {
public Object doInHibernate(Session session)
throws HibernateException, SQLException {
Query query = session.createQuery(hql);
query.setFirstResult(fristStr);
query.setMaxResults(maxItemStr);
return query.list();
}

});

public List<User> load(int first, int pageSize, String sortField,
SortOrder sortOrder, Map<String, String> filters) {
Session session = getHibernateTemplate().getSessionFactory()
.openSession();
Long count = (Long) session.createQuery(
"select count(*) from User user").uniqueResult();
int countNum = ((Number) count).intValue();
this.setRowCount(countNum);
if (countNum > pageSize) {
try {
return userList.subList(first, first + pageSize);
} catch (IndexOutOfBoundsException e) {
return userList.subList(first, first
+ (countNum % pageSize));
}
} else {
return userList;
}
}

};
return lazyModel;
}



===============================================================================
问题现象:
[color=red][b]分页按钮上一页、下一页不可点击[/b][/color]

[img]http://dl2.iteye.com/upload/attachment/0089/0862/993e5ad1-543b-332a-8923-47cdd7505de0.jpg[/img]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值