Java-Schlüsselwörter, die als EL-Bezeichner nicht zulässig sind

8

Kürzlich habe ich meinen Entwicklungs-Tomcat von 7.0.0 auf 7.0.4 aktualisiert. Ich hatte Dinge wie:

%Vor%

Beide haben an 7.0.0 gearbeitet, aber an 7.0.4 nicht mehr gearbeitet. Ich habe einen Fehler geöffnet, der geschlossen wurde, mit der Antwort:

  

An und für sich wird dieses Tag kompiliert.

     

Die Prüfungen für Java-Bezeichner wurden der EL-Verarbeitung hinzugefügt, so dass ich vermute   Sie haben irgendwo auf der Seite eine illegale EL.

Das klang nicht ganz klar, aber ich bekam keine Antwort darauf, also schaute ich mir die EL-Spezifikation an. Für die JSP 2.1 (die neueste Version 2.2) habe ich folgendes gefunden:

  

Kapitel 1, Seite 21: Ein Bezeichner wird als Java-Bezeichner festgelegt - z. B. no -, no / etc.

Und das ist das meiste, was ich gefunden habe. Ich würde diese Zeile so lesen, dass die Syntaxanforderungen gelten, die für Java-Bezeichner gelten, nicht aber die reservierten Wörter (da in der Liste der reservierten Wörter in EL die Nachbarn class und static erscheinen). Die JLS wird nicht als "Java-Bezeichner" bezeichnet (und für einige andere Fälle in der 2.2-Spezifikation, die ich nicht vollständig überprüft habe)

Also ist Tomcat berechtigt, diese Namen abzulehnen; Auf welchen Punkt der Spezifikation beziehen sie sich, und denken Sie, dass sie es richtig interpretieren?

    
Bozho 25.10.2010, 21:51
quelle

2 Antworten

5

Die Spezifikation besagt, dass Bezeichner auf Bezeichner beschränkt sind, die in Java gültig wären.

Sowohl static als auch class sind Java-Schlüsselwörter und können daher möglicherweise keine gültigen Bezeichner sein. Sie könnten dies beispielsweise nicht schreiben:

%Vor%

Also werden weder static noch class auch hier gültige Bezeichner sein.

    
VoteyDisciple 25.10.2010, 22:00
quelle
3

Aus JSP 2.2 EL-Spezifikation :

  

1.14 Reservierte Wörter

     

Die folgenden Wörter sind für die Sprache reserviert und dürfen nicht als verwendet werden   Identifikatoren.

%Vor%      

Beachten Sie, dass viele dieser Wörter jetzt nicht in der Sprache sind, aber sie können in der Sprache sein   Zukunft, also müssen Entwickler vermeiden, diese Wörter zu verwenden.

Ich sehe static , class usw. nicht. Diese Änderung in Tomcat 7.0.4 ergibt für mich keinen Sinn.

    
BalusC 26.10.2010 01:31
quelle

Tags und Links