Java 生成下一个\上一个按钮,JSP
我正处于进退两难的境地,不知道如何解决它 我有一个ArrayList,它从数据库中获取信息,并在html表上“绘制”。 问题是信息越大,页面越长。如果它有2000条记录,那么表就会变得那么长,用户向下滚动会很痛苦 我想做一个下一个和上一个按钮,但我不知道怎么做。 对不起,我有葡萄牙语的Java 生成下一个\上一个按钮,JSP,java,jsp,split,html-table,Java,Jsp,Split,Html Table,我正处于进退两难的境地,不知道如何解决它 我有一个ArrayList,它从数据库中获取信息,并在html表上“绘制”。 问题是信息越大,页面越长。如果它有2000条记录,那么表就会变得那么长,用户向下滚动会很痛苦 我想做一个下一个和上一个按钮,但我不知道怎么做。 对不起,我有葡萄牙语的 ArrayList<ArrayRegistos> listaRegistos = (ArrayList<ArrayRegistos>) request.getAttribute("list
ArrayList<ArrayRegistos> listaRegistos = (ArrayList<ArrayRegistos>) request.getAttribute("listaRegistos");
if (listaRegistos.size() == 0) {
out.println("<h2>No records</h2>");
%><%
} else {%><%
//out.println("<br/>");
//out.println("<span id=\"cor_tabela\" style=\"color: black;\">");
out.println("<table id=\"myTable\" border=3 width=\"1100\"height=\"1\">");
out.println("<thead>");
out.println("<tr>");
out.println("<center><td>Estado</td><td>Data Início</td><td>Hora Início</td><td>Técnico</td><td>Serviço</td><td>Descricao</td><td>Data Fim</td><td>Hora Fim</td></center>");
//out.println("</span>");
out.println("</tr>");
out.println("</thead>");
out.println("<tbody>");
for (ArrayRegistos i : listaRegistos) {
out.println("<input type=\"hidden\" name=\"teste\" value=\""+i.getId()+"\"> ");
// out.println("<tr>");
// out.println("<td>");
if(i.getEstado().equals("Pendente")){
out.println("<tr class=\"pendente\">");
out.println("<td>");
out.println(String.format("<center><a href=\"DetalheRegisto?detalhe="+i.getId()+"\"><span id=\"cor\" style=\"color: red ;\">"+i.getEstado()+"</span></a></center>"));
}else if(i.getEstado().equals("Concluído")){
out.println("<tr class=\"concluido\">");
out.println("<td>");
out.println(String.format("<center><a href=\"DetalheRegisto?detalhe="+i.getId()+"\"><span id=\"cor\" style=\"color: green ;\">"+i.getEstado()+"</span></a></center>"));
}else if(i.getEstado().equals("Validado")){
out.println("<tr class=\"validado\">");
out.println("<td>");
out.println(String.format("<center><a href=\"DetalheRegisto?detalhe="+i.getId()+"\"><span id=\"cor\" style=\"color: blue ;\">"+i.getEstado()+"</span></a></center>"));
}
//out.println(String.format("<center>"+i.getEstado()+"</center>"));
out.println("</td>");
out.println("<td>");
out.println(String.format("<center>"+i.getDataInicio()+"</center>"));
out.println("</td>");
out.println("<td>");
out.println(String.format("<center>"+i.getHoraInicio()+"</center>"));
out.println("</td>");
out.println("<td>");
out.println(String.format("<center>"+i.getTecnico()+"</center>"));
out.println("</td>");
out.println("<td>");
out.println(String.format("<center>"+i.getServico()+"</center>"));
out.println("</td>");
out.println("<td>");
String descricao = i.getDescricao();
if (descricao!=null && descricao.length()> 60){
out.println("</span>");
descricao=descricao.substring(0,40);
out.println("<center><span class=\"dropt\" title=\"\">"+descricao+"...</center>");
out.println("<span style=\"color: black ;\">"+i.getDescricao()+"</span>");
//out.println(String.format("<center>"+descricao+"...</center>"));
//System.out.println(descricao);
}else if(descricao==null){
descricao="Sem descrição";
out.println(String.format("<center>"+descricao+"</center>"));
}else if(descricao.isEmpty()){
descricao="Sem descrição";
out.println(String.format("<center>"+descricao+"</center>"));
}else{
out.println(String.format("<center>"+i.getDescricao()+"</center>"));
}
//out.println(String.format("<center>"+i.getDescricao()+"</center>"));
out.println("</td>");
out.println("<td>");
out.println(String.format("<center>"+i.getDataFim()+"</center>"));
out.println("</td>");
out.println("<td>");
out.println(String.format("<center>"+i.getHoraFim()+"</center>"));
out.println("</td>");
out.println("</tr>");
out.println("</tbody>");
out.println("</table>");
}
%></center>
ArrayList”);
}else如果(i.getEstado().equals(“conclusiído”)){
out.println(“”);
out.println(“”);
out.println(String.format(“”);
}else如果(i.getEstado().equals(“Validado”)){
out.println(“”);
out.println(“”);
out.println(String.format(“”);
}
//out.println(String.format(“+i.getEstado()+”);
out.println(“”);
out.println(“”);
out.println(String.format(“+i.getDataInicio()+”);
out.println(“”);
out.println(“”);
out.println(String.format(“+i.getHoraInicio()+”);
out.println(“”);
out.println(“”);
out.println(String.format(“+i.getTecnico()+”);
out.println(“”);
out.println(“”);
out.println(String.format(“+i.getServico()+”);
out.println(“”);
out.println(“”);
字符串descripcao=i.getdescripcao();
if(descripao!=null&&descripao.length()>60){
out.println(“”);
descripcao=descripcao.子串(0,40);
out.println(“+descripao+”);
out.println(“+i.getDescripticao()+”);
//out.println(String.format(“+descripao+”);
//System.out.println(descripcao);
}else if(descripao==null){
descripcao=“Sem descripção”;
out.println(String.format(“+descripao+”);
}else if(descripcao.isEmpty()){
descripcao=“Sem descripção”;
out.println(String.format(“+descripao+”);
}否则{
out.println(String.format(“+i.getDescripticao()+”);
}
//out.println(String.format(“+i.getDescripticao()+”);
out.println(“”);
out.println(“”);
out.println(String.format(“+i.getDataFim()+”);
out.println(“”);
out.println(“”);
out.println(String.format(“+i.getHoraFim()+”);
out.println(“”);
out.println(“”);
out.println(“”);
out.println(“”);
}
%>
我知道有些人认为使用Scriptlet是一种罪恶。但这里有一个演示页面
<%@ page import="java.util.*" %>
<%
ArrayList<String> list = new ArrayList<String>();
for(int i = 0; i < 35; i++){
list.add("item" + i);
}
int totalCount = 0;
int perPage = 10;
int pageStart = 0;
String start = request.getParameter("start");
if(start != null)pageStart = Integer.parseInt(start);
if(pageStart < 0)pageStart = 0;
totalCount = list.size();
if(pageStart >= totalCount)pageStart = pageStart - perPage;
%>
<a href="<%=request.getRequestURL()%>?start=<%=pageStart - 10 %>">Previous</a>
<%=pageStart + 1 %> - <%=pageStart + 10 %>
<a href="<%=request.getRequestURL()%>?start=<%=pageStart + 10 %>">Next</a><br/>
<%
for(int x = pageStart; x < pageStart + perPage && x < list.size(); x++){
out.print((String)list.get(x) + "<br/>");
}
%>
=总计数)页面开始=页面开始-每页;
%>
-
如果您可以使用JSTL,那么我们就可以避免使用Scriptlet
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<c:set var="total" scope="session" value="${fn:length(list)}"/>
<c:set var="perPage" scope="session" value="10"/>
<c:set var="pageStart" value="${param.start}"/>
<c:if test="${empty pageStart or pageStart < 0}">
<c:set var="pageStart" value="0"/>
</c:if>
<c:if test="${total <= pageStart}">
<c:set var="pageStart" value="${pageStart - perPage}"/>
</c:if>
<a href="?start=${pageStart - perPage}">Previous</a>${pageStart +1} - ${pageStart + perPage}
<a href="?start=${pageStart + perPage}">Next</a><br/>
<c:forEach var="item" items="${list}" begin="${pageStart}" end="${pageStart + perPage - 1}" >
${item}<br/>
</c:forEach>
${pageStart+1}-${pageStart+perPage}
${item}
我知道有些人认为使用Scriptlet是一种罪恶。但这里有一个演示页面
<%@ page import="java.util.*" %>
<%
ArrayList<String> list = new ArrayList<String>();
for(int i = 0; i < 35; i++){
list.add("item" + i);
}
int totalCount = 0;
int perPage = 10;
int pageStart = 0;
String start = request.getParameter("start");
if(start != null)pageStart = Integer.parseInt(start);
if(pageStart < 0)pageStart = 0;
totalCount = list.size();
if(pageStart >= totalCount)pageStart = pageStart - perPage;
%>
<a href="<%=request.getRequestURL()%>?start=<%=pageStart - 10 %>">Previous</a>
<%=pageStart + 1 %> - <%=pageStart + 10 %>
<a href="<%=request.getRequestURL()%>?start=<%=pageStart + 10 %>">Next</a><br/>
<%
for(int x = pageStart; x < pageStart + perPage && x < list.size(); x++){
out.print((String)list.get(x) + "<br/>");
}
%>
=总计数)页面开始=页面开始-每页;
%>
-
如果您可以使用JSTL,那么我们就可以避免使用Scriptlet
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<c:set var="total" scope="session" value="${fn:length(list)}"/>
<c:set var="perPage" scope="session" value="10"/>
<c:set var="pageStart" value="${param.start}"/>
<c:if test="${empty pageStart or pageStart < 0}">
<c:set var="pageStart" value="0"/>
</c:if>
<c:if test="${total <= pageStart}">
<c:set var="pageStart" value="${pageStart - perPage}"/>
</c:if>
<a href="?start=${pageStart - perPage}">Previous</a>${pageStart +1} - ${pageStart + perPage}
<a href="?start=${pageStart + perPage}">Next</a><br/>
<c:forEach var="item" items="${list}" begin="${pageStart}" end="${pageStart + perPage - 1}" >
${item}<br/>
</c:forEach>
${pageStart+1}-${pageStart+perPage}
${item}
Hi rickz,谢谢你的回复和演示。我将尝试在我的项目中修改第一个代码。我想我会有一些问题,因为我仍然试图理解其中的一些部分。我不能使用Jstl,因为我对它一无所知:)关于你的示例,你有一个arraylist“旧的“FOR”,我不知道如何使用“new”FOR。无论如何,我会尽我最大的努力;)我想我已经接近做到了,但我不能调整我的“FOR”,因为我有“new one”:“FOR(arrayregistosi:listaRegistos){”如果你想使用分页,你不能使用新的(每个)。我已经用“old one”实现了",但现在我想知道为什么按钮会给我空指针;)但是你的代码非常有用。嗨,rickz,谢谢你的回复和演示。我将尝试在我的项目中修改第一个代码。我想我会有一些问题,因为我仍然试图理解一些部分。我不能使用Jstl,因为我关于你的例子,你有一个带有“旧”FOR的arraylist,我不知道如何使用“新”FOR来完成它。无论如何,我会尽我最大的努力;)我想我已经接近完成了,但是我不能修改我的“FOR”,因为我有“新的”:“FOR(ArrayRegistos i:listaRegistos){”你不能使用新的(对于每个)如果你想使用分页。我已经用“旧的”做了,但是现在我想知道为什么按钮会给我空指针;)但是你的代码非常有用。