Boz*_*zho 8 java jsp tomcat el
最近我将我的开发tomcat从7.0.0升级到7.0.4.我有类似的东西:
<c:set var="static" value=".." />
<c:set var="class" value=".." />
Run Code Online (Sandbox Code Playgroud)
两者都在7.0.0上工作但在7.0.4上停止工作.我打开了一个bug,它被关闭了,答案是:
就其本身而言,该标签将进行编译.
对Java标识符的检查已添加到EL处理中,因此我怀疑您在页面的其他位置有一些非法的EL.
这听起来不太清楚,但我没有得到随后的答案,所以我看了EL规格.对于JSP 2.1(最新版本为2.2),我发现:
第1章,第21页:标识符被约束为Java标识符 - 例如,no - ,no /等.
这是我发现的最多.我将以适用于java标识符的语法要求适用的方式读取此行,但不应用保留字(因为更新class也不会static出现在EL中的保留字列表中).JLS没有被称为术语"Java标识符"(并且它适用于2.2规范中的一些其他情况,我没有完全查看)
那么,Tomcat是否有权拒绝这些名字; 他们指的是哪个规范,你认为他们正确地解释它.
规范说标识符仅限于在Java中有效的标识符.
这两个static和class是Java关键字,所以不可能是有效的标识符.例如,你不能这样写:
public int static = 7;
Run Code Online (Sandbox Code Playgroud)
因此,这里static也不class是有效的标识符.
| 归档时间: |
|
| 查看次数: |
2722 次 |
| 最近记录: |