Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   Java (http://www.forosdelweb.com/f45/)
-   -   Combobox dinamico en JSP y struts (http://www.forosdelweb.com/f45/combobox-dinamico-jsp-struts-589148/)

OsBe 22/05/2008 21:36

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

Lino-kun 23/05/2008 09:15

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.

ulpre_dg 19/06/2008 10:28

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!!!

LeoXIII 14/10/2011 21:53

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>
<%}%>


La zona horaria es GMT -6. Ahora son las 06:23.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.