【问题标题】:Pass java variable to sql (netbeans)将java变量传递给sql(netbeans)
【发布时间】:2015-11-15 22:45:06
【问题描述】:

我正在创建一个表格,我想显示用户选择的区域的信息。但是当我运行代码时,它只显示第一个复选框。

任何帮助将不胜感激!

    <section>
        <p1>Select the areas you want to know about:</p1><br><br>

        <form action="Areas_of_knowledge.jsp" method="GET">
            <input type="checkbox" name="area_evento" value="Mathematics">Mathematics<br>
            <input type="checkbox" name="area_evento" value="Astronomy">Astronomy<br>
            <input type="checkbox" name="area_evento" value="Computer Science">Computer Science<br>
            <input type="checkbox" name="area_evento" value="Biology">Biology<br>
            <input type="checkbox" name="area_evento" value="Physics">Physics<br>
            <input type="checkbox" name="area_evento" value="Chemistry">Chemistry<br>
            <input type="checkbox" name="area_evento" value="Psychology">Psychology<br>
            <input type="checkbox" name="area_evento" value="Human Sciences">Human Sciences<br>
            <input type="checkbox" name="area_evento" value="Interdisciplinary">Interdisciplinary<br>
            <input type="checkbox" name="area_evento" value="Other">Other<br><br>
            <input type="submit" value="Submit" size="50">
        </form>

        <!-- Ciclo para realizar la consulta --> 
        <c:if test="${!empty param.area_evento}">

            <%
                String select[] = request.getParameterValues("area_evento");
                if (select != null && select.length != 0) {

                    for (int i = 0; i < select.length; i++) {
                        String v = select[i];
            %>


            <sql:query var="evento" dataSource="jdbc/eventos">
                SELECT id_evento, persona_idfk, nom_evento, fecha_evento, num_part_evento, lugar_evento, area_evento FROM evento  WHERE area_evento=?
                <sql:param value="${param.area_evento}"/>
            </sql:query>

            <c:if test="${evento.rowCount>0}">
                <c:set var="area_evento" value="${evento.rows[0].area_evento}"/> 

                <!-- Tabla de eventos -->
                <table>
                    <!-- Título de la tabla -->
                    <caption><h2>Events in ${evento.rows[0].area_evento}</h2></caption>
                    <!-- Cabezote de la tabla -->
                    <tr2>
                        <td>Name</td>
                        <td>Date</td>
                        <td>Attendees</td>
                        <td>Place</td>
                        <td>Area of Knowledge</td>
                    </tr2>

                    <%-- Realiza la consulta para cada valor de los eventos y crea la tabla --%>
                    <c:forEach var="row" items="${evento.rows}"><tr>

                            <td><c:out value="${row.nom_evento}"/><br></td>
                            <td><c:out value="${row.fecha_evento}"/><br></td>
                            <td><c:out value="${row.num_part_evento}"/><br></td>
                            <td><c:out value="${row.lugar_evento}"/><br></td>
                            <td><c:out value="${row.area_evento}"/><br></td>

                        </tr></c:forEach>
                    </table>
            </c:if>

            <c:if test="${evento.rowCount==0}">
                <c:set var="nom_evento" value="${evento.rows[0].area_evento}"/>
                <caption><h2>There are no events in the area you selected.</h2></caption>
            </c:if>

            <%
                    }
                }
            %>

        </c:if>

    </section>

    <!-- Aquí comienza la equiqueta del pie del sitio -->
    <footer>
        L&V
    </footer>

</body>

【问题讨论】:

    标签: java mysql sql jsp


    【解决方案1】:

    尝试将查询更改为使用IN 而不是=

            <sql:query var="evento" dataSource="jdbc/eventos">
                SELECT id_evento, persona_idfk, nom_evento, fecha_evento, num_part_evento, lugar_evento, area_evento FROM evento  WHERE area_evento in (?)
                <sql:param value="${param.area_evento}"/>
            </sql:query>
    

    【讨论】:

    • 它不起作用...假设用户选择了天文学、生物学和物理学。它显示了第一个选择的三倍。
    猜你喜欢
    • 2016-03-26
    • 2019-08-29
    • 2012-11-19
    • 2017-10-07
    • 2012-02-09
    • 1970-01-01
    • 2023-03-25
    • 2019-02-16
    • 1970-01-01
    相关资源
    最近更新 更多