Java – jspg0122e: unable to parse El function in WebSphere 8
I am moving my web application from WebSphere 6.1 to WebSphere 8, and I encountered the following error in one of the JSP pages:
The violation part in the JSP file is as follows:
<c:forEach var="rowVo" items="${searchResultContainer.searchResultRowsPage}" varStatus="opStatus"> <c:if test="${not empty rowVo.operation.jobscopeDescription}"> <td>${rowVo.operation.jobscopeDescription}</td> </c:if> <c:if test="${not empty rowVo.operation.package}"> <td>${rowVo.operation.package}</td> </c:if> </c:forEach>
What puzzles me is that when the second El expression is almost the same, an exception is thrown from the third El expression
Operations are generated classes:
public class Operation { //Other properties omitted @XmlElement(name = "package") protected List<Package> _package; protected List<String> jobscopeDescription; public List<Package> getPackage() { if (_package == null) { _package = new ArrayList<Package>(); } return this._package; } public List<String> getJobscopeDescription() { if (jobscopeDescription == null) { jobscopeDescription = new ArrayList<String>(); } return this.jobscopeDescription; } }
These files were not changed during migration and worked well on was 6.1 Does anyone know what's wrong here?
Solution
In WebSphere Application Server V8 0 and later, the code responsible for checking the use of reserved keywords as El variable identifiers has been enhanced to make the check more stringent Variable checking code checks not only reserved El keywords, but also Java reserved keywords
For more information, see this article: http://www-01.ibm.com/support/docview.wss?uid=swg21642419&myns=swgws&mynp=OCSSEQTP&mync=A