当我按下提交按钮并显示它返回的行数而不刷新时,我想生成一个SQL查询。我已设法在下面执行此操作,但它会刷新并清除所有内容,值始终为0
。我正在使用Tomcat和NetBeans。
我正在使用提交功能,因为在我解决这个问题后,如果发生了什么事情,我将返回false。
msg
范围是显示返回行的位置。
Funciones.setSql
使用所选选项上的值生成SQL并存储在静态String中。然后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>
答案 0 :(得分:1)
您将Java代码和JavaScript代码混合在一起就好像它们是同一个东西。应避免使用JSP中的Java代码,如果存在,则必须位于scriptlet标记内(<% ... %>
)。当执行JSP并生成HTML和JavaScript代码时,Thsi Java代码在服务器端执行。
然后,在浏览器中,可以执行JavaScript代码。此JavaScript代码无法调用用于在服务器端生成HTML的Java对象的方法。浏览器中不存在Java。如果需要从浏览器调用服务器端Java代码,则必须向服务器发送新的HTTP请求(通过单击链接,提交表单或发送AJAX请求)。