我有一个页面显示一个表格,其中包含一些条目,这些条目首次从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="">
<input type="button" value="Accept" onclick="">
<input type="button" value="Next" onclick="">
</td></tr>
</table>
有人可以帮助我,我该如何继续使它成为可能?
提前致谢。
答案 0 :(得分:2)
您应修改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>
这需要稍微调整一下(例如,确保pageNumber永远不会小于0),但总的来说这是你可以采取的方法。
答案 1 :(得分:1)
Behrang
所回答的是内心深处的工作。
或者,如果您尝试重新发明轮子,可以使用displaytag.sf.net/。 displaytag还允许用户将表格导出为pdf和excel格式,因此在某些情况下您无需为报告编写额外的代码。