preciso de uma força de vcs, estou com a seguinte missão.
Preciso gerar TRS e TDS em um JSP dinamicamente, a partir de uma lista… Minha lista aumenta e diminui de itens conforme o usuário configura!
Sendo assim preciso organizar esses itens sempre em 3 colunas.
Tentei tbm fazer para a cada decimo quinto item da minha lista ele fechar a TR e abrir uma outra, mas n obtive sucesso.
Ex:
<%
for (int index = 0, i = 0; i < listaUnidadesAssinar.size(); i++) {
UnidadeTO unidade = (UnidadeTO) listaUnidadesAssinar.get(i);
index++;
%>
<tr>
<td><input type="checkbox" name="txtCdUnidade"
id="txtUnidadeNum<%=index%>" value="<%=unidade.getCdUnidade()%>" />
<%=unidade.getSiglaUnidade()%>
<%
if (15 % index == 0) {
%>
</td>
</tr>
<tr>
<td>
<%
}
}
%>
</td>
</tr>
cara, assim no jsp bruto fica ruim d+ tu desenvolver, procura um framework pra trabalhar que tu vai se amarrar mto + sem contar no tanto de códigos que tu vai salvar de digitar:
aí vai:
tu ta querendo gerar dinamicamente entre “” pq jsp puro não é o mesmo q ajax rsrs, tu vai precisar dar um refresh na página sempre. Teu código ta assim:
[code]
<%
for (int index = 0, i = 0; i < listaUnidadesAssinar.size(); i++) {
UnidadeTO unidade = (UnidadeTO) listaUnidadesAssinar.get(i);
index++;
%>
Aqui tu tem teu código exibindo todos os teus itens sem qualquer paginação.
vamos paginar agora (esse código ta bruto, tu tem que otimizar o link original dele está aqui o responsável por ele é o professor Osmar J. da Silva que criou o site de consultoria):
<%@ page language="java" import="java.sql.*" %>
<html>
<head><title>Aprendendo JSP</title>
</head>
<body>
<%
// Este exemplo mostra como paginar os resultados de uma
// tabela MySQL
// o nome da base de dados é "test"
String url = "jdbc:mysql://localhost/test";
String usuario = "root";
String senha = "1234";
Connection conn = null;
try{
Class.forName("com.mysql.jdbc.Driver").newInstance();
conn = DriverManager.getConnection(url, usuario, senha);
}
catch(SQLException ex){
out.println("SQLException: " + ex.getMessage() + "<br>");
out.println("SQLState: " + ex.getSQLState() + "<br>");
out.println("VendorError: " + ex.getErrorCode() + "<br>");
}
catch(Exception e){
out.println("Problemas ao tentar conectar com o banco de dados");
}
// conn é a conexão com o banco de dados
int limit = 5; // quantidade de resultados por página
// obtém a quantidade de registros
PreparedStatement pstmt = conn.prepareStatement(
"SELECT COUNT(*) AS c FROM CLIENTES");
ResultSet rs = pstmt.executeQuery();
rs.next();
int total_rows = Integer.parseInt(rs.getString("c"));
String pagina = request.getParameter("pagina"); // página atual
if(pagina == null){
pagina = "1";
}
int limitValue = (Integer.parseInt(pagina) * limit) - limit;
PreparedStatement pstmt2 = conn.prepareStatement(
"SELECT * FROM CLIENTES LIMIT " + limitValue + ", " + limit);
ResultSet rs2 = pstmt2.executeQuery();
while(rs2.next()) {
int id = rs2.getInt("CODIGO");
out.println("ID: " + id + "<br>");
String nome = rs2.getString("NOME");
out.println("NOME: " + nome + "<br>");
int idade = rs2.getInt("IDADE");
out.println("IDADE: " + idade + "<br><br>");
}
int anterior;
if(Integer.parseInt(pagina) != 1){
anterior = Integer.parseInt(pagina) - 1;
out.println("<a href=?pagina=" + anterior + ">" + limit + " Anteriores</a>");
}
else
out.println(limit + " Anteriores ");
int numOfPages = total_rows / limit;
int i;
for(i = 1; i <= numOfPages; i++){
if(i == Integer.parseInt(pagina)){
out.println("<b>" + i + "</b> ");
}
else{
out.println("<a href=?pagina=" + i + ">" + i + "</a> ");
}
}
if((total_rows % limit) != 0){
if(i == Integer.parseInt(pagina)){
out.println(i + " ");
}
else{
out.println("<a href=?pagina=" + i + ">" + i + "</a> ");
}
}
int proxima;
if((total_rows - (limit * Integer.parseInt(pagina))) > 0){
proxima = Integer.parseInt(pagina) + 1;
out.println("<a href=?pagina=" + proxima + ">Próximos " + limit + "</a>");
}
else
out.println("Próximos " + limit);
%>
</body>
</html>
eu testei ele e ta funcionando normal. Estou sem tempo, dps eu dou uma ajuda maior se alguém do guj não o fizer.
flws