Ver Mensaje Individual
  #2 (permalink)  
Antiguo 23/05/2008, 09:15
Avatar de Lino-kun
Lino-kun
 
Fecha de Ingreso: mayo-2008
Ubicación: Cuernavaca Morelos Mexico
Mensajes: 126
Antigüedad: 16 años, 10 meses
Puntos: 2
Respuesta: Combobox dinamico en JSP y struts

Hola te daré una forma de hacerlo con Struts y consulta a Bases de Datos ya tu decide si lo implementas.

La dinámica es esta:

1.- en el JSP invocas a los Beans que hacen la consulta
2.- cada consulta se guarda en un objeto de tipo ArrayList, Collection, etc.
3.- en el JSP con tags de Struts llenas el combo y listo a mí me funciona muy bien

Ahora si lo que deseas es que cuando el usuario escoja un servidor se llene el siguiente combo puedes hacer que al momento de que el select o comboBox genere el evento onChange() se llame al bean de la BD y llene el combo. Como dije eso ya depende de ti.

Este es un código que llena dos combos a partir de consultas en BD al momento de cargar la pagina JSP.

Codigo JSP
Código PHP:
<head>
   <%@ 
page import "com.aplicaciones.action.PaisesAction" %>
</
head>
<
body>
<%
        
PaisesAction paisesAction = new PaisesAction();
        
session=request.getSession(true);
        if(
session.getAttribute("listaCorreos")!=null && request.getAttribute("listaPaises")!=null){
           
session.removeAttribute("listaCorreos");
           
session.removeAttribute("listaPaises");
        }
        
PaisesAction.cargaDatos(session); 
      %>

<
logic:present name="listaCorreos">
               <
html:select name="PaisesForm" property="correos" styleClass="textBox">
                 <
html:options collection="listaCorreos" property="idCorreo" labelProperty="descripcion" />
               </
html:select>
             </
logic:present>

 <
logic:present name="listaPaises">
               <
html:select name="PaisesForm" property="pais" styleClass="textBox">
                 <
html:options collection="listaPaises" property="idPais" labelProperty="nombrePaisEsp" />
               </
html:select>
             </
logic:present>
</
body
Codigo de la consulta a BD usando un pool de conexiones.
Código PHP:
public List getPaistListHtml() throws Exception {
      List 
result=new ArrayList();
      
Connection con=null;
      
PreparedStatement ps=null;
      
ResultSet rs=null;
      
String sql="Select * from Pais order by NombrePaisEsp";
      
      try{
          
con=ConnectionFactory.getConnection();
          
ps=con.prepareStatement(sql);
          
rs=ps.executeQuery();
      
          
//arma la lista de Paises
          
while(rs.next()){
            
PaisDTO paisDTO=new PaisDTO();    
            
paisDTO.setIdPais(rs.getString("IdPais"));
              
paisDTO.setNombrePaisEsp(rs.getString("NombrePaisEsp"));
            
result.add(paisDTO);
          }
      }catch(
Exception e){
          
System.out.println(e.getMessage());
          throw new 
Exception(e.getMessage());
      }
finally{
         if(
rs!=null){
             
rs.close();
         }if(
ps!=null){
             
ps.close();
         }
         
ConnectionFactory.closeConnection(con);
      }
      return 
result;      
    } 
ConnectionFactory es una clase que yo cree donde me conecto a la BD por medio de un initialContext esa clase puedes verla en la sección de faqs al igual que los objetos DTO también puedes ver como son en la sección de faqs aunque solamente son clases simples. Deja y armo un caso para lo que pides sin Struts.

Saludos.