1

送信ボタンを押したときに SQL クエリを生成し、更新せずに返される行数を表示したいと考えています。以下でこれを行うことができましたが、すべてを更新してクリアし、値は常に0です。Tomcat と NetBeans を使用しています。

  • これを解決した後、何かが発生した場合に false を返すため、submit 関数を使用しています。

  • msgスパンは、返された行が表示される場所です。

  • Funciones.setSql選択したオプションの値を使用して SQL を生成し、静的文字列に格納します。次に、Funciones.count()はクエリを作成し、行数を という変数に格納しますnumF

  • Funciones.lista()1 つの特定のフィールドを使用し、値 (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 コードを含めることは避ける必要があります。存在する場合は、スクリプトレット タグ ( <% ... %>) 内に配置する必要があります。この Java コードは、JSP が実行され、HTML および JavaScript コードが生成されるときに、サーバー側で実行されます。

次に、ブラウザで JavaScript コードを実行できます。この JavaScript コードは、サーバー側で HTML を生成するために使用された Java オブジェクトのメソッドを呼び出すことができません。Java はブラウザに存在しません。サーバー側の Java コードをブラウザーから呼び出す必要がある場合は、新しい HTTP 要求をサーバーに送信する必要があります (リンクをクリックするか、フォームを送信するか、AJAX 要求を送信します)。

于 2012-06-30T10:11:55.723 に答える