Niedawno zaktualizowałem swój tomcat programisty z 7.0.0 na 7.0.4. Miałem takie rzeczy jak:Słowa kluczowe Java nie są dozwolone jako identyfikatory EL
<c:set var="static" value=".." />
<c:set var="class" value=".." />
Oba działały na wersji 7.0.0, ale przestały działać w wersji 7.0.4. I opened a bug, został zamknięty, z odpowiedzią, która:
Sam w sobie, ten tag zostanie skompilowany.
Kontrole dla identyfikatorów Java zostały dodane do przetwarzania EL, więc podejrzewam, że w innym miejscu strony znajdują się jakieś nielegalne EL.
To nie było całkiem jasne, ale nie otrzymałem kolejnej odpowiedzi, więc spojrzałem na specyfikację EL. Dla JSP 2.1 (najnowsza bycia 2.2) Okazało się, że:
rozdział 1, strona 21: Identyfikator jest ograniczony być identyfikator Java - np, nie - nie/itp
I to jest najbardziej, co znalazłem. Czytałbym ten wiersz w taki sposób, że mają zastosowanie wymagania dotyczące składni obowiązujące dla identyfikatorów java, ale nie zastrzeżone słowa (ponieważ neusze class
ani static
pojawiają się na liście zarezerwowanych słów w EL). JLS nie jest określany jako "identyfikator Java" (i jest to w przypadku niektórych innych przypadków w specyfikacji 2.2, których nie sprawdzałem w całości).
Tak, Tomcat słusznie odrzuca te nazwy; w którym punkcie specyfikacji się powołują i czy sądzisz, że interpretują to poprawnie.
tak, wydaje się, że do specyfikacji dodano odniesienie do JLS. – Bozho