<%!int total_page; // 总页数
int now_page; // 当前页数
int up_page; // 上一页
int down_page;// 下一页
int every_page = 2; // 每页有2条数据
int start;//从哪里开始查%>
<%
String sql = "select id,name,price from goods";
Dao dao = new Dao();
List list = null;
list = dao.query(sql, null);
int total_size = list.size();//查出list的长度就是数据库里有多少条数据
total_page = (total_size + every_page - 1) / every_page;//计算总页数
if (total_size == 0) {
out.print("抱歉,物品售空!");
} else {
String now_p = request.getParameter("now_page");
if (now_p != null) {
now_page = Integer.parseInt(now_p);
} else {
now_page = 1;//开始当前页是没有的,所以一定走else,当前页为1
}
if (now_page == 1) {
up_page = now_page;//如果当前页为1 ,则上一页就是1
} else {
up_page = now_page - 1;//如果当前页不是1 ,则上一页就是当前页-1
}
if (now_page == total_page) {
down_page = total_page;//如果当前页等于总页,那么下一页就等于当前页
} else {
down_page = now_page + 1;//如果当前页不是总页数,就说明不是最后一页,下一页就是当前页加1
}
start = (now_page - 1) * every_page;
String sql1 = "select * from goods order by id limit ?,2";//执行sql语句,查询条件为从start开始查,每次查两条
List list1 = dao.query(sql1, new Object[] { start });//给问号赋值,把start给sql中的问号
for (int i = 0; i < list1.size(); i++) {
Object[] array = (Object[]) list1.get(i);
//创建一个数组,因为得到的list中装的是数组,要取出每一个字段的值就需要把list.(i)用数组来接,再取出数组的值就是相应字段的值
%>
<tr width="100px" height="40px">
<td><%=array[1]%></td>
<td><%=array[2]%></td>
<td><a href="AddCart.jsp?id=<%=array[0]%>">添加购物车</a></td>
</tr>
<%
}
%>
</table>
<caption>
总页为<%=total_page%>
当前页为<%=now_page%>
<a href="SelectGoods.jsp?now_page=<%=up_page%>">上一页</a> <a
href="SelectGoods.jsp?now_page=<%=down_page%>">下一页</a>
</caption>
<%
}
%>
以上为购物车分页实现