struts2 Action
public class UserMgmtAction extends BaseAction {
//service
private UserMgmtService userMgmtService ;
//画面属性bean
private UserInfoBean userInfoBean;
//分页属性bean
private PageBean pageBean;
//选择框
private String [] selected;
/***
* 根据画面条件查询
* @return
*/
public String queryUserListByCondition(){
String pageIndexName = new ParamEncoder(pageBean.getTagId()).encodeParameterName(
org.displaytag.tags.TableTagParameters.PARAMETER_PAGE);
String pageIndex = this.getRequest().getParameter(pageIndexName);
//页数
int page = SimpleStringUtils.toInt(pageIndex);
// 取得页面当前页的下标
String pageSizeStr = PropertiesUtil.getPropertiesValueByKey(this.getClass(), ContantsUtil.PAGEPROPERTIES, ContantsUtil.PAGESIZE);
//查询List
List<?> userList=null;
//获取当前大分页数
int num = 1;
if(this.getSession().getAttribute("num")==null){
this.getSession().setAttribute("num",num);
}else{
String s =this.getSession().getAttribute("num").toString();
//SimpleStringUtils 自定义的字符串工具类
num = SimpleStringUtils.toInt(s);
}
//每次先从数据库查询1000条
int maxResult =1000;
//判断pageBean是否为NULL
int pageSize = pageBean.getPageSize();
//临时总分页数(分页中套分页)
int tempPages = maxResult / pageSize;
//判断是否超出临时查询页数范围
if(page > num*tempPages
|| page <=(num-1)*tempPages
|| this.getSession().getAttribute("list")==null){
//获取当前大分页数
num = page % tempPages ==0 ? page/tempPages: page/tempPages+1;
//
int outIndex = page % tempPages;
if(outIndex==0){
outIndex=1;
}
if(num == 0){
num = 1;
}
this.getSession().setAttribute("num",num);
//getUserListByCondition()调用的是Hibernate分页参数分别是画面bean,outIndex*maxResult=查询开始页数firstresult,maxResult=每次查询最大结果集,count=总共长度
int result = (num-1)*maxResult;
try{
count = userMgmtService.getRowCount(userInfoBean);
userList = userMgmtService.getUserListByCondition(userInfoBean, result, maxResult, count);
}catch(Exception ex){
ex.printStackTrace();
}
// 翻页时是否查询
pageBean.setPartialList(true);
// 设置每页显示记录数
pageBean.setPageSize(Long.valueOf(pageSizeStr).intValue());
// 记录总条数
pageBean.setSize(count);
//
List showList = new ArrayList(pageSize);
//
if(userList.size() < pageSize){
pageSize = userList.size();
showList.addAll(userList);
}else{
for(int i=(outIndex-1)*pageSize;i<outIndex*pageSize;i++){
Object obj = userList.get(i);
showList.add(obj);
}
}
pageBean.setPageList(showList);
this.getSession().setAttribute("pageBean", pageBean);
this.getSession().setAttribute("list", userList);
}else{
pageBean = (PageBean)this.getSession().getAttribute("pageBean");
List<?> list = (List<?>) this.getSession().getAttribute("list");
int outIndex = page % tempPages;
if(outIndex==0){
if(page==1){
outIndex=1;
}else{
outIndex=tempPages;
}
}
List tempList = new ArrayList(pageSize);
for(int i=(outIndex-1)*pageSize;i<outIndex*pageSize;i++){
Object obj = list.get(i);
tempList.add(obj);
}
pageBean.setPageList(tempList);
this.getSession().setAttribute("pageBean", pageBean);
}
return "queryUserList";
}
get set ...省略
jsp
<display:table
size="${pageBean.size}"
partialList="${pageBean.partialList}"
pagesize="${pageBean.pageSize}"
name="sessionScope.pageBean.pageList"
id="${pageBean.tagId}"
requestURI="${pageBean.requestURI}"
export="${pageBean.export}"
>
<display:column style="width:5%;text-align:center" headerClass="dataHead" property="uid"
title="<input type='checkbox' name='checkall' value='all' οnclick='checkAll();' />" decorator="com.ssh.jyht.sch.extend.displaytag.chx.CheckboxColumnWrapper" />
<display:column property="uid" title="编号" sortable="${pageBean.sortable}" style="width:33%;"/>
<display:column property="username" title="用户名" sortable="${pageBean.sortable}" style="width:33%;"/>
<display:column property="password" title="密码" sortable="${pageBean.sortable}" style="width:34%;"/>
详细请参考http://izixue.com/?fromuid=1544
public class UserMgmtAction extends BaseAction {
//service
private UserMgmtService userMgmtService ;
//画面属性bean
private UserInfoBean userInfoBean;
//分页属性bean
private PageBean pageBean;
//选择框
private String [] selected;
/***
* 根据画面条件查询
* @return
*/
public String queryUserListByCondition(){
String pageIndexName = new ParamEncoder(pageBean.getTagId()).encodeParameterName(
org.displaytag.tags.TableTagParameters.PARAMETER_PAGE);
String pageIndex = this.getRequest().getParameter(pageIndexName);
//页数
int page = SimpleStringUtils.toInt(pageIndex);
// 取得页面当前页的下标
String pageSizeStr = PropertiesUtil.getPropertiesValueByKey(this.getClass(), ContantsUtil.PAGEPROPERTIES, ContantsUtil.PAGESIZE);
//查询List
List<?> userList=null;
//获取当前大分页数
int num = 1;
if(this.getSession().getAttribute("num")==null){
this.getSession().setAttribute("num",num);
}else{
String s =this.getSession().getAttribute("num").toString();
//SimpleStringUtils 自定义的字符串工具类
num = SimpleStringUtils.toInt(s);
}
//每次先从数据库查询1000条
int maxResult =1000;
//判断pageBean是否为NULL
int pageSize = pageBean.getPageSize();
//临时总分页数(分页中套分页)
int tempPages = maxResult / pageSize;
//判断是否超出临时查询页数范围
if(page > num*tempPages
|| page <=(num-1)*tempPages
|| this.getSession().getAttribute("list")==null){
//获取当前大分页数
num = page % tempPages ==0 ? page/tempPages: page/tempPages+1;
//
int outIndex = page % tempPages;
if(outIndex==0){
outIndex=1;
}
if(num == 0){
num = 1;
}
this.getSession().setAttribute("num",num);
//getUserListByCondition()调用的是Hibernate分页参数分别是画面bean,outIndex*maxResult=查询开始页数firstresult,maxResult=每次查询最大结果集,count=总共长度
int result = (num-1)*maxResult;
try{
count = userMgmtService.getRowCount(userInfoBean);
userList = userMgmtService.getUserListByCondition(userInfoBean, result, maxResult, count);
}catch(Exception ex){
ex.printStackTrace();
}
// 翻页时是否查询
pageBean.setPartialList(true);
// 设置每页显示记录数
pageBean.setPageSize(Long.valueOf(pageSizeStr).intValue());
// 记录总条数
pageBean.setSize(count);
//
List showList = new ArrayList(pageSize);
//
if(userList.size() < pageSize){
pageSize = userList.size();
showList.addAll(userList);
}else{
for(int i=(outIndex-1)*pageSize;i<outIndex*pageSize;i++){
Object obj = userList.get(i);
showList.add(obj);
}
}
pageBean.setPageList(showList);
this.getSession().setAttribute("pageBean", pageBean);
this.getSession().setAttribute("list", userList);
}else{
pageBean = (PageBean)this.getSession().getAttribute("pageBean");
List<?> list = (List<?>) this.getSession().getAttribute("list");
int outIndex = page % tempPages;
if(outIndex==0){
if(page==1){
outIndex=1;
}else{
outIndex=tempPages;
}
}
List tempList = new ArrayList(pageSize);
for(int i=(outIndex-1)*pageSize;i<outIndex*pageSize;i++){
Object obj = list.get(i);
tempList.add(obj);
}
pageBean.setPageList(tempList);
this.getSession().setAttribute("pageBean", pageBean);
}
return "queryUserList";
}
get set ...省略
jsp
<display:table
size="${pageBean.size}"
partialList="${pageBean.partialList}"
pagesize="${pageBean.pageSize}"
name="sessionScope.pageBean.pageList"
id="${pageBean.tagId}"
requestURI="${pageBean.requestURI}"
export="${pageBean.export}"
>
<display:column style="width:5%;text-align:center" headerClass="dataHead" property="uid"
title="<input type='checkbox' name='checkall' value='all' οnclick='checkAll();' />" decorator="com.ssh.jyht.sch.extend.displaytag.chx.CheckboxColumnWrapper" />
<display:column property="uid" title="编号" sortable="${pageBean.sortable}" style="width:33%;"/>
<display:column property="username" title="用户名" sortable="${pageBean.sortable}" style="width:33%;"/>
<display:column property="password" title="密码" sortable="${pageBean.sortable}" style="width:34%;"/>
详细请参考http://izixue.com/?fromuid=1544