1

当我按下提交按钮并显示它返回的行数而不刷新时,我想生成一个 SQL 查询。我在下面设法做到了这一点,但它刷新并清除了所有内容,并且值总是0. 我正在使用 Tomcat 和 NetBeans。

  • 我正在使用提交功能,因为在我解决了这个问题后,如果发生任何事情,我将返回 false。

  • msg跨度是将显示返回的行的位置。

  • Funciones.setSql使用所选选项的值生成 SQL 并存储在静态字符串中。然后Funciones.count()只是进行查询并将行数存储在一个名为 的变量中numF

  • Funciones.lista()使用一个特定字段并设置一个值(id)生成数据库中的所有数据。

JSP:

<div data-role="page" id="realizadas">
    <%@include file="header.jsp"%>
    <div data-role="content">
        <form name="tareasr" id="tareasr" data-mini="true" method="post">
            <fieldset data-mini="true" data-role="controlgroup" data-type="horizontal"> 
                <select data-inline="true" name="vina" id="vina">
                    <option value="0">VIÑAS</option>
                    <%=Funciones.lista("VINA","option")%>
                </select>
            </fieldset>
            <input data-icon="search" type="submit"  value="Buscar" />
        </form>
        <b><span id="msg"></span></b>

        <script>

            $("#tareasr").submit(function() {
            <jsp:useBean id="formHandler" class="ges.FormBean">
                <jsp:setProperty name="formHandler" property="*"/>
            </jsp:useBean>
                var men="Num: ";
                <%Funciones.setSql(formHandler.getVina()); 
                Funciones.count();%>
                men+=<%=Funciones.numF%>;
                alert(men);
              $("#msg").text(men).show().fadeOut(3000);
            });
        </script>
    </div>
</div>
4

1 回答 1

1

您将 Java 代码和 JavaScript 代码混合在一起,就好像它们是同一件事一样。应避免在 JSP 中使用 Java 代码,如果存在,则必须在 scriptlet 标记 ( <% ... %>) 中。当执行 JSP 并生成 HTML 和 JavaScript 代码时,Thsi Java 代码在服务器端执行。

然后,在浏览器中,可以执行 JavaScript 代码。此 JavaScript 代码无法调用用于在服务器端生成 HTML 的 Java 对象的方法。浏览器中不存在 Java。如果您需要从浏览器调用服务器端 Java 代码,则必须向服务器发送一个新的 HTTP 请求(通过单击链接、提交表单或发送 AJAX 请求)。

于 2012-06-30T10:11:55.723 回答