Struts 中 实现查询结果分页显示

messagelist.do->messagelist.jsp
用messagelist.do?start=0来显示第一个页面
参数说明:
list:信息列表
start:开始位置
page:每页显示的信息数目
previous:上页开始位置
next:下页开始位置

Struts-config.xml里是这么写的:
------------------------------------------------------------------------------------
<form-bean name="pagerForm" type="com.wiscom.pj.commision.forms.PagerForm">
</form-bean>
<action path="/multiPage" type="com.wiscom.pj.commision.actions.MultiPageAction" name="pagerForm" scope="session">
<forward name="userGroup" path="/user/userGroupList.jsp">
</forward>
</action>
------------------------------------------------------------------------------------

MessageListAction里的perform是这样写的:
------------------------------------------------------------------------------------
intstart=Integer.parseInt(request.getParameter("start"));
System.out.println("Start:"+start);
intpage=4;

//createamessagelist
Message[]list=newMessage[16];
for(inti=0;i<list.length;i++){
list[i]=newMessage(i,"message"+i);
}
request.setAttribute("list",list);
request.setAttribute("start",newInteger(start));
request.setAttribute("page",newInteger(page));

//ifthereisapreviouspage,setthepreviousvariable
intprevious=start-page;
if(previous>=0){
request.setAttribute("previous",newInteger(previous));
System.out.println("previous:"+previous);
}

//ifthereisanextpage,setthenextvariable
intnext=start+page;
if(next<list.length){
request.setAttribute("next",newInteger(next));
System.out.println("next:"+next);
}

return(mapping.findForward("success"));
------------------------------------------------------------------------------------

MessageListForm里是这样写的:
------------------------------------------------------------------------------------
public Message[] userGroups = null ;

public Message[] getUserGroups() {
return userGroups;
}

public void setUserGroups(Message[] messages) {
userGroups = messages;
}
------------------------------------------------------------------------------------
下面是messagelist.jsp里的内容:
------------------------------------------------------------------------------------
<logic:iterateid="message"name="list"offset="start"length="page">
<br><html:link
paramId="id"paramName="message"paramProperty="id"
page="/messagedetail.do">
<bean:writename="message"property="name"/>
</html:link>
</logic:iterate>

<logic:presentname="previous">
<br><html:link
paramId="start"paramName="previous"
page="/messagelist.do">
上一页
</html:link>
</logic:present>

<logic:presentname="next">
<br><html:link
paramId="start"paramName="next"
page="/messagelist.do">
下一页
</html:link>
</logic:present>
------------------------------------------------------------------------------------

以此例子来说明logic:iterate在分页里的用法
由于每次messagelist.do都会处理所有的message,所以性能上还是可以再优化
比如把message数组存放在session里。
:)


原文地址
http://www.chinaxp.org/forum/viewThread.go?parentId=1051714599611&forum=3
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值