今天在jsp頁面中遍歷list時,將<c:forEach>中的var屬性設置爲了new,然後項目就報錯了,報錯內容如下:
org.apache.jasper.JasperException: javax.el.ELException: Failed to parse the expression [${new.price}]
既然是ELException,我就去查了下EL表達式的規範,恍然大悟,是自己設置的變量名稱與關鍵字衝突了,
怎麼解決呢?有三種,如下:
第一種:嚴格遵守java規範,修改對象的屬性名稱,要求不包含java關鍵字;
第二種:修改EL表達式,例如"${owner.new}"可以修改爲"${owner['new']}";
第三種:修改tomcat屬性,忽略對EL表達式的關鍵字檢查。修改$CATALINA_BASE/conf/catalina.properties文件,添加org.apache.el.parser.SKIP_IDENTIFIER_CHECK=true選項。
參考文檔: