JSPG0122E:无法解析Websphere 7中的EL函数

时间:2013-12-30 17:08:31

标签: java jstl el websphere-7

我正在将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时出错。

1 个答案:

答案 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表达式中进行方法调用。