在相应的ActionForm中取得数据的ArrayList list;
request.setAttribute("data_length",new Integer(list.size()));
设置这个数据长度是为了知道能分几页显示
然后在负责显示的jsp页面添加如下代码:
<%
String url="employeeList.do?pageNumber=";
int length = ((Integer)request.getAttribute("data_length")).intValue();//取得总共数据条数
int pageSize = 10;//每页显示10条数据
int pages = (length - 1) / pageSize + 1;//计算需要页数
int offset=0;//数据起始索引
int pageNumber=1;//当前页数
if(request.getParameter("pageNumber") != null)
pageNumber = (new Integer((String)request.getParameter("pageNumber"))).intValue();
offset = (pageNumber - 1)*pageSize;
%>
然后再添加分页代码:
<logic:iterate id="..." name="..." offset="<%=(new Integer(offset)).toString()%>" length="<%=(new Integer(pageSize)).toString()%>">
.....
</logic:iterate>
<tr>
<a href="<%=url+1%>">第1页</a>
<%
for(int i=2; i<pages; i++) {
%>
<a href="<%=url+i%>">第<%=i%>页</a>
<%
}
%>
<a href="<%=url+pages%>">末页</a>
</tr>
上面的这个循环我想可以用struts的标志库函数取代,由于刚接触struts不久,不熟悉,所以只能暂时这样了,这也能很好的解决我的问题,以后再想办法优化吧,各位有什么意见也可一写出来