11.20

Posted on 2020-11-20 21:18  ***Pepsi***  阅读(49)  评论(0编辑  收藏  举报

今天学了

使用分页显示,每次处理的时候需要知道要访问第几页,还需要知道一共有多少页。
要显示第几页是用户在界面上点击上一页、下一页、第一页、最后一页或者输入第几
页来确定的,所以需要获取。第 1 次访问的时候,不知道显示第几页,默认显示第 1 页。
可以使用下面的代码:
int pageNo = 1; // 设置默认值
// 获取从页面中传递的 第几页 信息
String strPageNo = request.getParameter("pageNo");
if(strPageNo != null)
{
pageNo = Integer.parseInt(strPageNo); // 把字符串转换成数字
}
另外需要把总的页数传递到显示页面,获取的方式和传递的方式与所有用户信息的获
取和传递方式相同。下面是完整的代码:
package bookstore.servlets;
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.*;
import bookstore.bean.*;
public class FindAllUserServlet extends HttpServlet{
public void doGet(HttpServletRequest request,HttpServletResponse response)
throws IOException,ServletException
{
int pageNo = 1;
// 获取从页面中传递的 第几页 信息
String strPageNo = request.getParameter("pageNo");
if(strPageNo != null)
{
pageNo = Integer.parseInt(strPageNo); // 把字符串转换成数字

  }
 // 创建模型对象
 UserBean user = new UserBean();
 try{
 // 调用业务方法得到所有用户列表
 ArrayList userlist = user.findAllUser();

 // 保存到 request 中
 request.setAttribute("userlist",userlist);
 // 得到总的页数
 Integer pageCount = user.getPageCount();

 // 把总页数保存到 request 中
 request.setAttribute("pageCount",pageCount);
 // 把当前页传递过去
 request.setAttribute("pageNo",pageNo);
 // 转向显示界面
 RequestDispatcher rd = request.getRequestDispatcher("userlist.jsp");
 rd.forward(request,response);
 }catch(Exception e){
 // 设置文档类型
 response.setContentType("textml;charset=gb2312");
 // 获取输出流对象
 PrintWriter out = response.getWriter();
 // 输出异常信息
 out.println(e.toString());
 }
 }
 public void doPost(HttpServletRequest request,HttpServletResponse response)
 throws IOException,ServletException
 {
 doGet(request,response);
 }

Copyright © 2024 ***Pepsi***
Powered by .NET 8.0 on Kubernetes