messagelistdo > messagelistjsp
用 messagelistdo?start= 来显示第一个页面
参数说明
list信息列表
start开始位置
page每页显示的信息数目
previous上页开始位置
next下页开始位置
MessageListAction 里的 perform 是这样写的
int start = IntegerparseInt(requestgetParameter(start));
Systemoutprintln (Start: + start);
int page = ;
// create a message list
Message[] list = new Message[];
for (int i=; i< listlength; i++){
list[i] = new Message(i message + i);
}
requestsetAttribute(list list);
requestsetAttribute(start new Integer(start));
requestsetAttribute(page new Integer(page));
// if there is a previous page set the previous variable
int previous = startpage;
if ( previous >= ){
requestsetAttribute(previous new Integer(previous));
Systemoutprintln (previous: + previous);
}
// if there is a next page set the next variable
int next = start+page;
if ( next< listlength ){
requestsetAttribute(next new Integer(next));
Systemoutprintln (next: + next);
}
return (mappingfindForward(success));
下面是 messagelistjsp 里的内容
< logic:iterate id=message name=list offset=start length=page >
< br >< html:link
paramId=id paramName=message paramProperty=id
page=/messagedetaildo >
< bean:write name=message property=name / >
< /html:link >
< /logic:iterate >
< logic:present name=previous >
< br >< html:link
paramId=start paramName=previous
page=/messagelistdo >
上一页
< /html:link >
< /logic:present >
< logic:present name=next >
< br >< html:link
paramId=start paramName=next
page=/messagelistdo >
下一页
< /html:link >
< /logic:present >
以此例子来说明 logic:iterate 在分页里的用法
由于每次 messagelistdo 都会处理所有的 message所以性能上还是可以再优化
比如把 message 数组存放在 session 里