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

Combo box+jsp+servlet

Estas en el tema de Combo box+jsp+servlet en el foro de Java en Foros del Web. Hola, estoy arrojando datos desde un servlet a un jsp. Y quiero implementar un combo box con estos datos que envío. Pero no me muestra ...
  #1 (permalink)  
Antiguo 07/07/2012, 02:00
 
Fecha de Ingreso: febrero-2008
Mensajes: 78
Antigüedad: 16 años, 2 meses
Puntos: 0
Combo box+jsp+servlet

Hola, estoy arrojando datos desde un servlet a un jsp. Y quiero implementar un combo box con estos datos que envío. Pero no me muestra los datos.

Este es mi código:

Código:
<% 


    
     String prod[] = new String[3]; 
       prod =  (String[]) request.getSession().getAttribute("PROVIDERLIST");
    
          
     
 %>

          <option value="<%="prod" %>"><%=prod%></option>
  #2 (permalink)  
Antiguo 07/07/2012, 03:02
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 7 meses
Puntos: 454
Respuesta: Combo box+jsp+servlet

Un combo es asi http://www.w3schools.com/tags/tag_option.asp

Tienes que poner un <select>, hacer un bucle que te saque las tres <option> de prod y cerrral el <select>

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #3 (permalink)  
Antiguo 07/07/2012, 03:41
 
Fecha de Ingreso: febrero-2008
Mensajes: 78
Antigüedad: 16 años, 2 meses
Puntos: 0
Respuesta: Combo box+jsp+servlet

Código:
 <select>
<% 


    
     String prod[] = new String[3]; 
    
       prod =  (String[]) request.getSession().getAttribute("PROVIDERLIST");
    
          
     
 %>

           for(int i=0;i<3;i++){ 
          <option value="<%="prod[i]" %>"><%=prod%></option>
   }
          
</select>
Muestra el combo box, pero con un error java.lang.String dentro de este. Osea no muestra los datos.
  #4 (permalink)  
Antiguo 07/07/2012, 04:00
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 7 meses
Puntos: 454
Respuesta: Combo box+jsp+servlet

Fijate que has cerrado el %> antes del bucle. También sobran algunas comillas en el value. Son temas de sintaxis básicos, revísalos.

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #5 (permalink)  
Antiguo 07/07/2012, 15:46
 
Fecha de Ingreso: febrero-2008
Mensajes: 78
Antigüedad: 16 años, 2 meses
Puntos: 0
Respuesta: Combo box+jsp+servlet

Ya logré hacer que se vea el combo box con los datos que necesitaba.

Estoy intentando capturar la opción seleccionada e imprimirla en el mismo jsp. Pero me imprime el nombre de la variable y no su contenido. Osea: prod[i]

Este es mi código:

Código:
 <form name="form" action="Resultados2.jsp" method="post" >
<select name="sel">
<% 


    
     String prod[] = new String[6]; 
    
       prod =  (String[]) request.getSession().getAttribute("departamento");
    
          
     


           for(int i=0;i<6;i++){ 
               if(prod[i]!=null){
                %>
           
          <option value="<%="prod[i]" %>"><%=prod[i]%></option><% 
   }
                             }
       %>   
</select><tr>
<input type="submit" value="Entrar"/><br>

    </body>
    </form>
<%String option=request.getParameter("sel");
 if(option==null){
 }
 else{
 out.println("You have selected: <b>"+option+"</b>"+"<br>");
 }
 %>

Última edición por Lain0x; 07/07/2012 a las 16:17
  #6 (permalink)  
Antiguo 07/07/2012, 16:19
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 7 meses
Puntos: 454
Respuesta: Combo box+jsp+servlet

Lo que te dije de las comillas, esto que has puesto

<option value="<%="prod[i]" %>"

se traduce en

<option value="prod[i]"


en vez de en lo que pretendes. Te sobran comillas

<option value="<%= prod[i] %>"

un ejemplo más claro

a = 3
<%= "a" %> escribe a
<%= a %> escribe 3

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #7 (permalink)  
Antiguo 07/07/2012, 16:40
 
Fecha de Ingreso: febrero-2008
Mensajes: 78
Antigüedad: 16 años, 2 meses
Puntos: 0
Respuesta: Combo box+jsp+servlet

Me sigue imprimiendo prod[i]

Código:
<option value="prod[i]"><%=prod[i]%></option>
  #8 (permalink)  
Antiguo 07/07/2012, 19:52
 
Fecha de Ingreso: febrero-2008
Mensajes: 78
Antigüedad: 16 años, 2 meses
Puntos: 0
Respuesta: Combo box+jsp+servlet

Código:
<select name="sel" style="width: 246px" ><option value="">Select</option>
<% 


    
     String prod[] = new String[6]; 
    
       prod =  (String[]) request.getSession().getAttribute("departamento");
    
          
     


           for(int i=0;i<6;i++){ 
               if(prod[i]!=null){
                %>
           
          <option value="prod[i]"><%=prod[i]%></option><% 
   }
                             }
       %>   
</select><tr>
Código:
       <%
        String[] option=request.getParameterValues("sel");
       
 
             for (int n = 0; n < option.length; n++) {
%>
 <%= option[n] %> <br>
 
 <%
  }
                        
%>
Me muestra null ( java.lang.NullPointerException)
  #9 (permalink)  
Antiguo 07/07/2012, 22:29
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 7 meses
Puntos: 454
Respuesta: Combo box+jsp+servlet

Lee bien, te sobraban las comillas, no los <%= %>. El código que tienes que poner es

<option value="<%= prod[i] %>"><%=prod[i]%></option>

En cuanto al NullPointer, posiblemente la primera vez muestras la página, request no tiene ningún atributo "sel" (todavía no has elegido nada en el combo ni enviado al servidor). Asi que

String[] option=request.getParameterValues("sel");

posiblemente devuelve null y option.length te dará NullPointer. Debes verificar si es null y si no lo es, entonces hacer lo que sea que quieres hacer. Por cierto, sel debería devolverte sólo una opción, la seleccionada, no tiene mucho sentido el array de String[] y el bucle.

Se bueno.
__________________
Apuntes Java
Wiki de Programación

Última edición por chuidiang; 07/07/2012 a las 23:20

Etiquetas: combo, jsp, string
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




La zona horaria es GMT -6. Ahora son las 09:11.