gpt4 book ai didi

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

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:47:31 24 4
gpt4 key购买 nike

最近我将我的开发 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 ,它已关闭,答案是:

In and of itself, that tag will compile.

The checks for Java identifiers were added to the EL processing so I suspect you have some illegal EL elsewhere on the page.

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

Chapter 1, page 21: An identifier is constrained to be a Java identifier - e.g., no -, no /, etc.

这是我发现的最多的了。我会以适用于 java 标识符的语法要求而不是保留字的方式阅读这一行(因为更近的 classstatic 出现在保留字列表中在EL)。 JLS 没有提到术语“Java 标识符”(它适用于 2.2 规范中的其他一些情况,我没有完全审查)

那么,Tomcat 拒绝这些名称是否正确?他们指的是规范的哪一点,您认为他们的解释是否正确。

最佳答案

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

staticclass 都是Java 关键字,因此不可能是有效的标识符。例如,你不能这样写:

public int static = 7;

因此 staticclass 都不是这里的有效标识符。

关于Java 关键字不允许作为 EL 标识符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4019185/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com