我写了以下代码:
<%
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:forEach var="result" begin="0" items="${account.rows}">
<c:set var="balance" value="${ result.balance + depositAmount }" />
<c:out value="${ balance }" />
</c:forEach>
问题在于<c:set var="balance" />
实际上并没有将两个值加在一起。
我假设depositAmount无法识别?我不确定为什么。
有人可以解释我如何使用JSTL获取请求参数(余额)并将其添加到查询中获得的余额中吗?
这是一项家庭作业,我必须使用JSP。
谢谢
答案 0 :(得分:3)
Scriptlets (那些<% %>
事物)和EL(那些${}
事物)不共享相同的变量范围。
${param.name}
提供EL。
<sql:query var="account" dataSource="jdbc/bank">
select * from account where AccountNumber=${param.accountNumber}
</sql:query>
<c:forEach var="result" begin="0" items="${account.rows}">
<c:set var="balance" value="${result.balance + param.depositAmount}" />
<c:out value="${balance}" />
</c:forEach>