我在JSP文件中编写了以下代码:
<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>
Run Code Online (Sandbox Code Playgroud)
我遇到的问题是以下代码抛出一个javax.el.MethodNotFoundException:无法找到[0]参数异常的方法[first]:
<c:when test="${account.first() == false}">
<p>Account not found</p>
</c:when>
Run Code Online (Sandbox Code Playgroud)
我需要访问sql:query中的帐户变量,以便检查第一行是否存在.
<sql:query var='account' dataSource="jdbc/bank">
Run Code Online (Sandbox Code Playgroud)
根据<sql:query>文档,这account是一个javax.servlet.jsp.jstl.sql.Result类.
<c:when test="${account.first() == false}">
Run Code Online (Sandbox Code Playgroud)
根据类'javadoc,该类没有first()方法.然而,有一种getRowCount()方法.我建议改用它.
<c:when test="${account.rowCount == 0}">
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
15168 次 |
| 最近记录: |