Как сделать нумерацию страниц в JSP? - PullRequest
2 голосов
/ 19 апреля 2011

У меня есть страница, на которой отображается таблица с некоторыми записями, которая впервые взята из метода в виде списка из сущности JPA.

теперь у меня есть 3 кнопки: предыдущий , принять , следующий

я хочу, чтобы при нажатии следующей или предыдущей кнопки отображалась предыдущая / следующая запись.

Вот некоторые фрагменты кода:

<%!
 Request req=new Request();
 List<pendingRequest> li= req.showDetails();
 int i=0;
 pendingRequest pr=null; %>
<%pr=li.get(i); %>
 <table align="center">
<tr><td><b>Employee Id  :</b></td><td><%=pr.getEmpId()%></td></tr>
<tr><td><b>Name         :</b></td><td><%=pr.getEmpName()%></td></tr>
<tr><td><b>Phone Number :</b></td><td><%=pr.getEmpPhnNo()%></td></tr>
<tr><td><b>Email Id     :</b></td><td><%=pr.getEmpEmail()%></td></tr>
<tr><td><b>Password     :</b></td><td><%=pr.getEmpPassword()%></td></tr>
</table><br><br>

<table align="center">
<tr><td>
<input type="button" value="Previous" onclick="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<input type="button" value="Accept" onclick="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<input type="button" value="Next" onclick="">
</td></tr>
</table>

Может кто-нибудь, пожалуйста, помогите мне, как мне поступить, чтобы сделать это возможным?

Заранее спасибо.

Ответы [ 2 ]

2 голосов
/ 19 апреля 2011

Вам следует изменить метод showDetails, чтобы он принимал два параметра: pageNumber, resultsPerPage.

Тогда внутри вашего showDetails метода у вас будет что-то вроде этого:

/**
 * <code>pageNumber</code> starts from 0
 */
public List<PendingRequest> showDetails(int pageNumber, int resultsPerPage)
{
 Query q = ...
 q.setFirstResult(pageNumber * resultsPerPage);
 q.setMaxResults(resultsPerPage);
 ...
 return q.getResultList();
}

Установите номер страницы вверху страницы:

<%
  int pageNumber = request.getParameter("pageNumber") == null ? 0 : Integer.parseInt(request.getParameter("pageNumber"));
%>

Замените входные данные Next и Previous ссылками (предположим, что ваш JSP-файл называется list.jsp):

<a href="list.jsp?pageNumber=<%= pageNumber + 1 %>">Next</a>
<a href="list.jsp?pageNumber=<%= pageNumber - 1 %>">Previous</a>

Это требует небольшой доработки (например, чтобы номер страницы никогда не становился меньше 0), но в целом это подход, который вы можете использовать.

1 голос
/ 19 апреля 2011

То, на что Behrang ответил, это внутренняя работа, которая невероятна.

В качестве альтернативы вы можете использовать displaytag.sf.net / на случай, если вы попытаетесь заново изобрести колесо. Тег тега также позволяет пользователю экспортировать таблицу в формат pdf и excel, поэтому в некоторых случаях вам не нужно писать дополнительные коды для отчетов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...