exactamente que pasa cuando quieres actualizar los list menus? ya que dices que tienes muchos pero no dices cual es el problema exactamente.
Cabe aclarar que para llenar un Combo siempre tienes que hacer uso de los Beans, si no lo haces asi no te dejará ni por que le reces al codigo ( lo digo porque intente hacer las llamadas directamente a la BD y no me dejo :( ).
Realmente no se que problema tienes pero aqui te dejo codigo en como lleno yo los combos, que basicamente es igual en un list menu.
Esto es en el JSP:
Código:
<%
dao.ReportDAO reportDAO = new dao.ReportDAO();
java.util.Collection userCombo;
java.util.Iterator iterador;
%>
Engineer:
<select name="nameOfEngineer">
<option value="0">
--- Select an Engineer ---
</option>
<%
userCombo = reportDAO.findAllEngineer();
iterador = userCombo.iterator();
while( iterador.hasNext() ){
usuario = (dto.UserDTO)iterador.next();
%>
<option value="<%=usuario.getUserNumber()%>"> <%=usuario.getFullName()%> </option>
<%
}
%>
</select>
Esto es en el DAO:
Código:
private static final String NAME_OF_ALL_ENGINEER = "SELECT user_number, CONCAT( last_name, ' ', first_name ) as nombre FROM users ORDER BY nombre;";
public Collection findAllEngineer( ) throws SQLException {
Connection connection = null;
Statement statement = null;
ResultSet rs = null;
Collection resultado = new ArrayList();
try {
connection = getConnection();
statement = connection.createStatement();
rs = statement.executeQuery( NAME_OF_ALL_ENGINEER );
while( rs.next() ){
resultado.add( this.createUserDTO( rs ) );
}
} catch ( SQLException sqlex ) {
throw new SQLException( "Cannot load database registers." );
} finally{
rs.close();
statement.close();
connection.close();
}
return resultado;
}
public UserDTO createUserDTO( ResultSet rs ) throws SQLException {
UserDTO userDTO = null;
try {
userDTO =
new UserDTO(rs.getInt("user_number"),
rs.getString("nombre") );
} catch (SQLException sqlex) {
throw new SQLException("Cannot create user object (DTO)");
}
return userDTO;
}
Espero te sirva de algo esta informacion
, de no ser asi porfavor indica cual es tu problema exactamente