我正在将Web应用程序移动到Websphere 7,并且我的JSP页面出现了错误。
JSPG0227E: Exception caught while translating /WEB-INF/jsp/snet/destinationTripReport.jsp:
/WEB-INF/jsp/snet/destinationTripReport.jsp(211,8) --> JSPG0122E: Unable to parse EL function ${destForm.flightTable.get(loop.index).tripId}.
发生错误的JSP部分看起来像这样。
<c:forEach items="${destForm.flightTable}" var="entry" varStatus="loop">
<!-- content -->
<tr class="table-info">
<td>${destForm.flightTable.get(loop.index).tripId}</td>
<td>${destForm.flightTable.get(loop.index).actualArrival}</td>
<td>${destForm.flightTable.get(loop.index).comment}</td>
</tr>
</c:forEach>
最令我困惑的是,它使用TOMCAT运行,但使用Websphere时出错。
答案 0 :(得分:6)
Websphere 7使用JSP 2.1(Java EE5)。 JSP 2.1不支持EL表达式中的方法调用,因此${destForm.flightTable.get(loop.index)}
因为在EL表达式中调用get()而无效。
要解决您的问题,您的EL表达式应为${destForm.flightTable[loop.index].tripId}
,假设destForm.flightTable
是可以通过索引访问的列表/数组。
注意:JSP 2.2+(Java EE6 +)允许在EL表达式中进行方法调用。