Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java关键字不允许作为EL标识符_Java_Jsp_Tomcat_El - Fatal编程技术网

Java关键字不允许作为EL标识符

Java关键字不允许作为EL标识符,java,jsp,tomcat,el,Java,Jsp,Tomcat,El,最近,我将我的开发tomcat从7.0.0升级到7.0.4。我有过这样的经历: <c:set var="static" value=".." /> <c:set var="class" value=".." /> 两者都在7.0.0上工作,但在7.0.4上停止工作。我,它被关闭了,答案是: 就其本身而言,该标记将被编译 Java标识符的检查被添加到EL处理中,因此我怀疑 你在页面的其他地方有一些非法的EL 这听起来不太清楚,但我没有得到后续的答案,因此我查看了EL规

最近,我将我的开发tomcat从7.0.0升级到7.0.4。我有过这样的经历:

<c:set var="static" value=".." />
<c:set var="class" value=".." />

两者都在7.0.0上工作,但在7.0.4上停止工作。我,它被关闭了,答案是:

就其本身而言,该标记将被编译

Java标识符的检查被添加到EL处理中,因此我怀疑 你在页面的其他地方有一些非法的EL

这听起来不太清楚,但我没有得到后续的答案,因此我查看了EL规范。对于JSP 2.1(最新版本为2.2),我发现:

第1章,第21页:标识符被限制为Java标识符-例如,no-,no/,等等

这是我发现的最多的。我将以一种适用于java标识符的语法要求的方式阅读这一行,但不适用于保留字(因为neighter
class
static
出现在EL中的保留字列表中)。JLS并不是指术语“Java标识符”(它是指2.2规范中的一些其他情况,我没有完全回顾)


那么,Tomcat拒绝这些名字是正确的吗;他们指的是规范的哪一点,你认为他们的解释正确吗。

规范说标识符仅限于在Java中有效的标识符

static
class
都是Java关键字,因此不可能是有效的标识符。例如,您无法编写以下内容:

public int static = 7;
因此这里的
静态
都不是有效标识符。

来自:

1.14保留字 以下词语是为该语言保留的,不得用作 标识符

and eq gt true instanceof or ne le false empty not lt ge null div mod 和eq gt true instanceof 或是一片虚空 非lt ge空div mod 请注意,这些单词中的许多现在不在语言中,但它们可能在 所以开发人员必须避免使用这些词


我看不到
静态
,等等。Tomcat 7.0.4中的这一更改对我来说没有意义。

是的,似乎在规范中添加了对JLS的引用。