Java - <select> con java

 
Vista:
sin imagen de perfil

<select> con java

Publicado por Padilla (1 intervención) el 29/03/2018 15:01:19
Hola que tal, soy nuevo en la fantástica área de la Programación.
Tengo una duda que me esta haciendo que la pase mal. Estoy haciendo un proyecto - Página Web - BBDD de venta de coches de segunda mano. Ahora tengo un fichero JSP en el cual tengo 3 select los cuales serían (1er select de MARCAS, 2do select de MODELOS y 3er select MOTOR) los tres con un form cada uno que hace la petición al Servlet. Mi duda es la siguiente, cómo puedo anidar todos los select? Es decir que en el 1er select al momento de seleccionar X marca en el 2do select me refleje los modelos de X marca y el 3er select me muestre el tipo de motor del modelo de coche seleccionado en el select 2 (Perdonen si me explico mal), Lo quiero hacer desde el lado del servidor, es decir sin javascript ni ningun tipo de libreria FRONT. El codigo que tengo es el siguiente

JSP:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
<form name="formulario1" method="get" action='<%=response.encodeURL("coches?act=lis")%>'>
    <strong>Marca: </strong>
    &nbsp;&nbsp;&nbsp;&nbsp;
    <select name="select1" id="select1">
        <option value="0"> Seleccione una Marca</option>
        <%
        List<Marca> marcas = (List<Marca>) application.getAttribute("marcas");
        for (Marca ma : marcas){
            out.println("<option value='" + ma.getMarcaCoche()+ "'"
                    + marcarOpcion(request, ma.getMarcaCoche()) + ">"
                    + ma.getMarcaCoche()+ "</option>");
        }
        %>
 
    </select>
</form>
 
<br/><br/>
<!-- <input type="submit" name="marcaCarro" id="marcaCarro" value=" " /> -->
<br/><br/>
<form name="formulario2" method="get" action='<%=response.encodeURL("coches?act=lis")%>'>
    <strong>Modelo: </strong>
    &nbsp;&nbsp;&nbsp;&nbsp;
    <select name="select2" id="select2">
        <option value="-">Seleccione un Modelo</option>
 
    </select>
</form>
<br/><br/>
<!-- <input type="submit" value="   CONSULTAR   " /> -->
<br/><br/>
<form name="formulario3" method="get" action='<%=response.encodeURL("coches?act=lis")%>'>
    <strong>Motor: </strong>
    &nbsp;&nbsp;&nbsp;&nbsp;
    <select name="codigoCoche" >
        <option>Seleccione Tipo Motor
        <%
        List<Coches> coches1 = (List<Coches>) application.getAttribute("motor");
        for (Coches co : coches1){
            out.println("<option value='" + co.getTipoCombustible()+ "'"
                    + marcarOpcion(request, co.getTipoCombustible()) + ">"
                    + co.getTipoCombustible()+ "</option>");
        }
        %>
        </option>
        <option>Electrico</option>
        <option>Hibrido</option>
    </select>
    <br/><br/>
    <input type="submit"  value="   CONSULTAR   "  />
</form>



SERVLET:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
@WebServlet(name = "Proyecto_Web", urlPatterns = {"/coches"}, loadOnStartup = 1)
public class ActionServlet extends HttpServlet {
 
    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
 
        String vista = "/index.jsp";
 
        String accion = req.getParameter("act");
 
        switch (accion) {
            case "lis":
                ListadoAction action = new ListadoAction();
 
                vista = action.listado(req);
 
                break;
            case "bmw":
                listaBmw action2 = new listaBmw();
 
                vista = action2.listado(req);
 
                break;
            case "toy":
                listaToy action3 = new listaToy();
 
                vista = action3.listado(req);
 
                break;
            case "hyu":
                listaHyu action4 = new listaHyu();
 
                vista = action4.listado(req);
 
                break;
            case "kia":
                // Validar formulario entrada
                listaKia action5 = new listaKia();
 
                vista = action5.listado(req);
 
                break;
 
        }
 
        String url = resp.encodeURL(vista);
 
        RequestDispatcher dispatcher = req.getRequestDispatcher(url);
 
        dispatcher.forward(req, resp);
    }
 
    @Override
    public void init(ServletConfig config) throws ServletException {
        super.init(config);
 
        MarcaJpaController controller = new MarcaJpaController();
        CochesJpaController controller1 = new CochesJpaController();
 
        List<Marca> marcas = controller.findAll();
        List<Coches> coches = controller1.findAll();
        List<Coches> coches1 = controller1.findAll();
 
        ServletContext context = config.getServletContext();
 
        context.setAttribute("marcas", marcas);
        context.setAttribute("carros", coches);
        context.setAttribute("motor", coches1);
 
      }
}

Agradezco su tiempo y ayuda
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder