最近我將我的開發tomcat從7.0.0升級到7.0.4。我有這樣的東西:Java關鍵字不允許作爲EL標識符
<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是否有權拒絕這些名稱;他們指的是哪一點,你認爲他們是否正確地解釋了它。
是的,它似乎提到了JLS被添加到規範中。 – Bozho 2010-10-26 09:17:25