【发布时间】:2016-01-11 19:44:04
【问题描述】:
我想我有一个关于在 JSP 文件上使用 JSTL ForEach 代码的一般问题。 “items”属性中的输出是否必须定义为数组?
我目前在我的日志中收到一条错误消息,指出它是 “JSPTagException:不知道如何在
这是我正在使用的 JSP 和 JAVA 程序:
EFTscreen.jsp:
<table>
<thead>
<tr>
<th>Schedule Number</th>
<th>Contract Year</th>
<th>Creation Date</th>
<th>Num of Pay Recs</th>
<th>Schedule Total</th>
<th>Status</th>
<th>Status Date</th>
<th>Approval ID</th>
</tr>
</thead>
<tbody>
<c:forEach var="row" items="${EFTresults}">
<tr>
<td><c:out value="${row.getSCHEDULE_NUMBER()}" /></td>
<td><c:out value="${row.getEFT_CONTRACT_YEAR()}" /></td>
<td><c:out value="${row.getCREATION_DATE()}"/></td>
<td><c:out value="${row.getNUM_OF_PAY_RECORDS()}"/></td>
<td <c:out value="${row.getTOTAL_AMOUNT()}"/></td>
<td><c:out value="${row.getSTATUS()}"/></td>
<td><c:out value="${row.getSTATUS_DATE()}"/></td>
<td><c:out value="${row.getAPPR_HUD_EMPLOYEE()}"/></td>
</tr>
</c:forEach>
</tbody>
</table>
</article>
这是用于在我的 JAVA servlet 中创建 EFTresults 信息的代码:
EFTscreen.java:
if (wkScheduleNum != 0)
{
Sum_EFTBean EFTresults = EFTQuery.selectSchedule(wkScheduleNum, wkContract) ;
request.setAttribute("EFTresults", EFTresults);
if (EFTresults.getSCHEDULE_NUMBER().equals(wkScheduleNum))
{
request.setAttribute("EFTresults", EFTresults);
}
else
{
message = ("no EFT schedule Number found - please try again");
request.setAttribute("message", message);
}
}
}
EFTQuery.java 程序:
try {
System.out.println("Before going to connection statement. Continue");
connection
= DriverManager.getConnection(URL, USERNAME, PASSWORD);
ps = connection.prepareStatement(query);
ps.setInt(1, wkSchedule);
ps.setInt(2, wkContract);
rs = ps.executeQuery();
System.out.println("Before checking the rs next part. Continue");
if (rs.next()) {
System.out.println("Inside the recordset processing for SQL. Continue");
Sum_EFTBean results = new Sum_EFTBean() ;
results.setSCHEDULE_NUMBER(rs.getInt("SCHEDULE_NUMBER"));
results.setEFT_CONTRACT_YEAR(rs.getInt("EFT_CONTRACT_YEAR"));
results.setCREATION_DATE(rs.getString("CREATION_DATE"));
results.setNUM_OF_PAY_RECORDS(rs.getInt("NUM_OF_PAY_RECORDS"));
results.setTOTAL_AMOUNT(rs.getDouble("TOTAL_AMOUNT"));
results.setSTATUS(rs.getString("STATUS"));
results.setSTATUS_DATE(rs.getString("STATUS_DATE"));
results.setAPPR_HUD_EMPLOYEE(rs.getString("APPR_HUD_EMPLOYEE"));
return results ;
}
else
{
Integer EFTnotfound = 99999;
Sum_EFTBean results = new Sum_EFTBean() ;
results.setSCHEDULE_NUMBER(EFTnotfound);
return results ;
}
}
catch (SQLException e)
{
System.err.println(e);
DBUtil.closeResultSet(rs);
DBUtil.closePreparedStatement(ps);
return null;
}
finally
{
DBUtil.closeResultSet(rs);
DBUtil.closePreparedStatement(ps);
// pool.freeConnection(connection);
}
感谢您的帮助。
【问题讨论】: