今天在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选项。
参考文档: