私はこのジレンマを抱えており、それを解決する方法がわかりません。
データベースから情報を取得し、html テーブルに「描画」する ArrayList があります。問題は、情報が大きくなるほど、ページが長くなることです。2000 件のレコードがある場合、テーブルはそれだけ長くなり、ユーザーが下にスクロールするのは面倒です。
NEXT ボタンと PREVIOUS ボタンを作りたいのですが、やり方がわかりません。私が持っているもの、申し訳ありませんがポルトガル語です...
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>