<TR>'s dinaminas no jsp usanso List

Pessoal,

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>

Se alguem puder me ajudar =/

Desde ja
Muito obrigado

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++;
%>

<tr>  
    <td><input type="checkbox" name="txtCdUnidade"  
        id="txtUnidadeNum<%=index%>" value="<%=unidade.getCdUnidade()%>"  />  
    <%=unidade.getSiglaUnidade()%>   

<%
if (15 % index == 0) {
%>




<%
}
}
%>

[/code]

extremamente bagunçado e ruim até de se ler por ser puro. Vamos arrumá-lo assim:

[code]

<% 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()%>   
    </td>  
</tr>  

<% } } %>

[/code]

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

Bom… mesmo que não use framework nenhum… eu recomendaria a utilização de JSTL…

exemplo de iteração de uma lista…

<c:forEach items = "${lista}" var="lista">   
  <c:out value="${lista.atributo}" />   
</c:forEach>