【发布时间】:2011-04-30 11:17:31
【问题描述】:
最近我将我的开发 tomcat 从 7.0.0 升级到了 7.0.4。我有这样的事情:
<c:set var="static" value=".." />
<c:set var="class" value=".." />
两者都在 7.0.0 上工作,但在 7.0.4 上停止工作。我opened a bug,已经关门了,答案是:
该标签本身会编译。
对 Java 标识符的检查已添加到 EL 处理中,所以我怀疑 你在页面的其他地方有一些非法的 EL。
这听起来不太清楚,但我没有得到后续答案,所以我查看了 EL 规范。对于 JSP 2.1(最新的是 2.2),我发现:
第 1 章,第 21 页:标识符被限制为 Java 标识符 - 例如,无 -、无 / 等。
这是我发现的最多的。我会以适用于 java 标识符的语法要求的方式阅读这一行,而不是保留字(因为相邻的 class 或 static 出现在 EL 的保留字列表中)。 JLS 不是指“Java 标识符”一词(它是针对 2.2 规范中的其他一些情况,我没有完全审查)
那么,Tomcat 有权拒绝这些名称吗?他们指的是规范的哪一点,您认为他们的解释是否正确。
【问题讨论】: