sirve - jtable java
¿Cómo puedo iterar a través de los valores de una fila desde un conjunto de resultados en Java? (4)
Asegúrese de leer primero el Tutorial .
while(rs.next()) {
String col1 = rs.getString("NAME"); // if NAME is VARCHAR2, for eg.
}
Si bien es perfectamente posible leer los conjuntos de resultados en JSP, esa no es la forma correcta de hacerlo en Java. Tales cosas siempre se deben realizar en una clase de Java separada cuyo resultado será meramente iterado en el JSP.
El conjunto de resultados estoy hablando de esto: http://docs.oracle.com/javase/1.4.2/docs/api/java/sql/ResultSet.html
Lo que me gustaría hacer es esto ...
for row in rows
for col in row
//col is the name of the column, row[col] is the value.
Soy más profeciente en PHP, que JSP, fyi. Esto se haría en PHP así:
foreach($rs as $row)
foreach($row as $col => $val)
//val is the cell value, and column is the column name
EDITAR: Estoy buscando una solución genérica. observe cómo col es una variable, no literal.
Es fácil si usa la Biblioteca de etiquetas estándar de Java .
Mira esto, también:
http://docs.oracle.com/javaee/1.4/tutorial/doc/JSTL3.html
Desearía encarecidamente que no incorpore el código scriptlet en sus JSP. No es el camino a seguir.
Si aceptas eso, entonces cualquier otra respuesta dada aquí tiene que ser descartada. Todos ellos pertenecen a las clases de Java del lado del servidor, no a un JSP.
Esta es solo una variación de la respuesta a_horse_with_no_name.
final ResultSetMetaData meta = rs.getMetaData();
final int columnCount = meta.getColumnCount();
final List<List<String>> rowList = new LinkedList<List<String>>();
while (rs.next())
{
final List<String> columnList = new LinkedList<String>();
rowList.add(columnList);
for (final int column = 1; column <= columnCount; ++column)
{
final Object value = rs.getObject(column);
columnList.add(String.valueOf(value));
}
}
// add the rowList to the request.
Editar Agregado final a todas las variables.
ResultSetMetaData meta = rs.getMetaData();
int colCount = meta.getColumnCount();
while (rs.next())
{
for (int col=1; col <= colCount; col++)
{
Object value = rs.getObject(col);
if (value != null)
{
System.out.print(value.toString());
}
}
}
Pero no recomendaría hacer algo como esto directamente en la página JSP. Desarrolle algún tipo de titular de valor (por ejemplo, una Lista de Listas) en el back-end e itere sobre eso.