问题描述
我在JSP文件中编写了以下代码:
I wrote the following code in a JSP file:
<c:catch var="e">
<%
int accountNumber = Integer.parseInt(request.getParameter("accountNumber"));
int depositAmount = Integer.parseInt(request.getParameter("depositAmount"));
%>
<sql:query var='account' dataSource="jdbc/bank">
select * from account where AccountNumber=<%= accountNumber %>
</sql:query>
<c:choose>
<c:when test="${account.first() == false}">
<p>Account not found</p>
</c:when>
<c:otherwise>
<h3>Deposit Made</h3>
<p>Account number: <%= accountNumber %></p>
<p>Deposit amount: <%= depositAmount %></p>
<p>New balance: </p>
</c:otherwise>
</c:choose>
</c:catch>
<c:if test="${e != null}">
error
</c:if>
我遇到的问题是以下代码引发了javax.el.MethodNotFoundException:无法找到具有[0]参数异常的方法[first]:
The problem I am having is that the following code throws an javax.el.MethodNotFoundException: Unable to find method [first] with [0] parameters exception:
<c:when test="${account.first() == false}">
<p>Account not found</p>
</c:when>
我需要访问sql:query中的account变量,以便检查第一行是否存在.
I need to access the account variable in the sql:query so I can check to see if a first row exists.
推荐答案
<sql:query var='account' dataSource="jdbc/bank">
根据 <sql:query>
文档,account
是 javax.servlet.jsp.jstl.sql.Result
类.
As per the <sql:query>
documentation, the account
is a javax.servlet.jsp.jstl.sql.Result
class.
<c:when test="${account.first() == false}">
根据类的javadoc,该类没有first()
方法.但是,有一个 getRowCount()
方法.我建议改用它.
As per the class' javadoc, that class doesn't have a first()
method. There is however a getRowCount()
method. I'd suggest to use that instead.
<c:when test="${account.rowCount == 0}">
这篇关于JSTL sql:查询变量的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!