Member 13681858 Ответов: 1

Концепция пагинации с использованием сервлета-hibernateintegration.


@WebServlet("/PagenationServlet") 
public class PagenationServlet extends HttpServlet {

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException 
{
    response.setContentType("text/html");
    PrintWriter out=response.getWriter();

    int  pageNo=Integer.parseInt(request.getParameter("pageNo"));
    int startIndex=pageNo*3-3;

    IEmpDao dao=new EmpDaoImpl();
    List lt=dao.readEmps(startIndex);

    out.println("<center> ");
    out.println("");
    out.println("");
    out.println("");
    Iterator it=lt.iterator();
    while(it.hasNext())
    {
        Employee e=(Employee)it.next();
        out.println("");
        out.println("");
        out.println("");
        out.println("");
        out.println("");

    }
    out.println("<table border="1"><tbody><tr><th>EMPNO</th> <th>ENAME</th> <th>SAL</th> <th>DEPTNO</th></tr><tr><td>"+e.getEmpNo()+"</td><td>"+e.getEName()+"</td><td>"+e.getSalary());
        out.println("</td><td>"+e.getDeptNum()+"</td></tr></tbody></table>");

    long totalRows =dao.getNoOfRows();
    long noOfPages =totalRows/3;
    if(totalRows%3!=0)
    {
        noOfPages++;
    }
    if(pageNo==1)
    {
        int x=pageNo+1;
        out.println("<a href=./PagenationServlet?pageNo="+x+">  Next");
    }
    else if(pageNo==noOfPages)
    {
        int x=pageNo-1;
        out.println("<a href=./PagenationServlet?pageNo="+x+">  Prev");
    }
    else
    {
        int x=pageNo+1;
        out.println("<a href=./PagenationServlet?pageNo="+x+"> Next");
        int y=pageNo+1;
        out.println("<a href=./PagenationServlet?pageNo="+y+"> Next");

    }
}
}


Что я уже пробовал:

Я пытаюсь сделать программу, связанную с концепцией пагинации, используя Servlet-HibernateIntegration. но когда я выполняю программу я получаю сообщение об ошибке NumberFormatException

Richard Deeming

Вы не сказали нам, но я предполагаю, что это происходит на линии:

int  pageNo=Integer.parseInt(request.getParameter("pageNo"));
Вы сделали два предположения: 1) запрос содержит параметр под названием "pageNo"; и 2) Значение этого параметра может быть преобразовано в целое число.

Member 13681858

я пытаюсь напечатать 3 записи из базы данных на странице.для этого я конвертирую

ThilinaMD

пробовать Скрыть   скопировать код

int pageNo=Integer.parseInt(request.getParameter("pageNo").toString());

Member 13681858

@ThilinaMD я пробовал с вашим кодом, но получаю такое же исключение.
у меня есть таблица в базе данных с именем emp1. У меня там 11 записей. я хочу напечатать 3 записи на каждой странице, на последней странице 2 записи, которые я хочу напечатать при преобразовании переменной pageNo, она выбрасывает NumberFormaatException

ThilinaMD

Поэтому сначала при запуске сервлета нет никакого значения для pageNo. Попробуйте сначала установить значение для (используя условие if) страницы no variable.

Member 13681858

@ThilinaMD я не понял вас,не могли бы вы объяснить это

ThilinaMD

int pageNo=Integer.parseInt(request.getParameter("pageNo")); сначала, когда сервлет запускает значение request.getParameter("pageNo")является null. так int pageNo не получит значения.

ThilinaMD

Пожалуйста, посмотрите на опубликованное решение

Member 13681858

ОК

ThilinaMD

Ваша проблема решена?

1 Ответов

Рейтинг:
2

ThilinaMD

попробуйте этот код

int pageNo = 1;
if (request.getParameter("pageNo") != null) {
    pageNo = Integer.parseInt(request.getParameter("pageNo"));
}
вместо
int  pageNo=Integer.parseInt(request.getParameter("pageNo"));

Ошибка возникает из-за того, что сначала при загрузке вашего сервлета нет значения для pageNo varialble


Member 13681858

@ThilinaMD спасибо, что помогли мне в этом..
программа выполнена

ThilinaMD

Добро пожаловать и счастливого кодирования...