Foros del Web » Programación para mayores de 30 ;) » Java »

Combobox dinamico en JSP y struts

Estas en el tema de Combobox dinamico en JSP y struts en el foro de Java en Foros del Web. Hola que tal!!! Estoy realizando la modificaciòn a una aplicaciòn, el problema es que necesito 2 combos, uno en el que se presente el nombre ...
  #1 (permalink)  
Antiguo 22/05/2008, 21:36
 
Fecha de Ingreso: mayo-2008
Mensajes: 3
Antigüedad: 16 años
Puntos: 0
Combobox dinamico en JSP y struts

Hola que tal!!!

Estoy realizando la modificaciòn a una aplicaciòn, el problema es que necesito 2 combos, uno en el que se presente el nombre de servidores y el otro que en base a la seleccion del servidor me presente las sucursales de ese servidor, quiero saber como realizar esta consulta a la Base de Datos, poder presentar la informaciòn en loc combos y dejarla almacenda en cache para que en caso de que se de de baja la base por mantenimiento la palicaciòn siga operando ya que no realizaria la busqueda a la base sino en el cahe

Espero y me puedan ayudar

Gracias de antemano
  #2 (permalink)  
Antiguo 23/05/2008, 09:15
Avatar de Lino-kun  
Fecha de Ingreso: mayo-2008
Ubicación: Cuernavaca Morelos Mexico
Mensajes: 126
Antigüedad: 16 años
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.
  #3 (permalink)  
Antiguo 19/06/2008, 10:28
 
Fecha de Ingreso: junio-2008
Mensajes: 1
Antigüedad: 15 años, 11 meses
Puntos: 0
Respuesta: Combobox dinamico en JSP y struts

código jsp que me muestre subactividades de actividades en 2 combos. Es decir de combo"actividad" depende combo"subactividad"respectivamente.Ejemplo:si selecciono copiar(actividad1) de combo actividad, que combo subactividad tenga fuente,imagen,etc;si selecciono borrar(actividad2) de combo actividad, que combo subactividad tenga texto,linea,etc.
gracias!saludos!espero me respondan!!!
  #4 (permalink)  
Antiguo 14/10/2011, 21:53
 
Fecha de Ingreso: septiembre-2011
Mensajes: 8
Antigüedad: 12 años, 7 meses
Puntos: 1
Respuesta: Combobox dinamico en JSP y struts

son 3 capas


en la logica se coloca la consulta donde se devuelve un arrayList


public ArrayList<Plato> mostrarTipoPlato(){

Connection con;
ArrayList<Plato> platos = new ArrayList<Plato>();
try{
con= cn.getConnection();
Statement st= con.createStatement();
ResultSet rs= st.executeQuery("select distinct tipoPlato as tipoPlato From Platos");

while(rs.next()){
Plato plato = new Plato();
plato.setTipoPlato(rs.getString("tipoPlato"));
platos.add(plato);
}

}catch(Exception e){

e.printStackTrace();
}

return platos;
}



luego en el controlador se llama a este metodo :

HttpSession sesion = request.getSession(false);
ArrayList<Plato> tipos= gr.mostrarTipoPlato();
session.setAttribute("Tipos", tipos);



y asi se recibe en la vista:


<html:select property="tipoPlato" onchange="mostrarPlatos(this)">
<html:option value="">None</html:option>
<% ArrayList<Plato> tipos= (ArrayList) session.getAttribute("Tipos");
for(int i=0;i<tipos.size();i++){

Plato plato=tipos.get(i);


%>
<html:option value="<%=plato.getTipoPlato()%>"><%=plato.getTipo Plato()%></html:option>
<%}%>
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas (incluyéndote)




La zona horaria es GMT -6. Ahora son las 15:41.