Différence entre JSP EL, JSF EL et Unified EL [fermé]

122

Je voudrais connaître la différence détaillée entre les langages d'expression (EL). Il existe JSP EL, JSF EL et Unified EL.

J'aimerais connaître l'histoire derrière l'EL et quelle est la dernière EL utilisée dans les applications Java EE. Est-ce le EL commun à toutes les technologies d'affichage dans les dernières versions?

Krishna
la source

Réponses:

221
  • Juin 2002: JSTL 1.0 a été introduit avec EL pour la première fois. Ce sont ces ${}choses qui fonctionnent uniquement dans les balises JSTL. Il est conçu pour appeler les getméthodes Javabean .

  • Nov 2003: JSP 2.0 a été introduit et EL a été déplacé de JSTL 1.0 à JSP 2.0 dans le javax.servlet.jsp.elpackage et il est devenu EL standard dans le cadre de la norme J2EE 1.4. JSTL 1.1 a été livré sans EL. ${}Fonctionne désormais en dehors des balises JSTL dans le texte du modèle JSP.

  • Mars 2004: JSF 1.0 a été introduit avec EL différé dans le javax.faces.elpackage. Ce sont ces #{}choses qui fonctionnent uniquement dans les balises JSF. La différence avec JSP EL standard ${}est que non seulement il le fait get, mais il peut aussi le faire set. Cela était obligatoire pour la création automatique de bean géré et la définition des valeurs des composants d'entrée. Le EL standard ${}fonctionne également dans les balises de sortie JSF, mais ils ne créeront pas automatiquement de beans s'ils n'existent pas encore dans la portée et ils ne définiront pas de valeurs d'entrée.

  • Mai 2005: Pendant la préparation de la nouvelle JSP 2.1 qui devrait sortir en mai 2006, EL différé a #{}été extrait de JSF et combiné avec EL standard ${}dans le javax.elpackage. À ce stade, il est devenu EL unifié qui a été introduit avec JSF 1.2 et est devenu plus tard une partie de la norme JSP 2.1 et Java EE 5. Le #{}peut désormais également être utilisé dans les balises JSP en getvaleurs, mais pas en setvaleurs. Le ${}peut maintenant dans JSP également créer automatiquement des beans gérés, mais pas des setvaleurs.

  • Novembre 2006: Facelets a été introduit comme successeur de JSP. Il permettait d'utiliser #{}dans le modèle de texte en dehors des balises JSF, en remplacement de <h:outputText>sans aucun attribut. Il traite également ${}comme #{}, donc ils se comportent tous les deux de la même manière dans Facelets.

  • Déc 2009: EL a été extraite de la spécification JSP et est devenue une spécification autonome qui sera maintenue indépendamment de JSP, la première version étant EL 2.2 (JSR-245), analogue à JSP 2.2. La nouvelle fonctionnalité principale est d'appeler des méthodes paramétrées au lieu d'appeler uniquement les getters / setters Javabean dans la #{}syntaxe, par exemple #{bean.method(argument)}. De plus, Facelets est devenu une partie de la norme Java EE 6.

  • Juin 2013: EL 3.0 a été introduit avec un processeur EL autonome, permettant une utilisation dans une application Java SE simple. D'autres nouvelles fonctionnalités principales sont le nouvel opérateur de concaténation de chaînes +=, de nouvelles opérations pour les objets de collection, y compris les flux et les expressions Lambda ->(même sur Java 6/7!) Et l'importation de constantes dans la portée EL.

BalusC
la source
18

Ajout à la réponse de BalusC ...

EL a été initialement conçu et mis en œuvre par Nathan Abramson de Art Technology Group en 2001. À l'époque, l'implémentation était connue sous le nom de langage d'expression le plus simple possible (SPEL). L'implémentation a ensuite été incluse dans le JSTL1.0. Nathan faisait partie du groupe d'experts JSR-052 et a été crédité dans la spécification JSTL comme la force motrice du langage d'expression.

"Mention spéciale à Nathan Abramson pour avoir joué un rôle moteur dans le langage d'expression introduit dans JSTL"

jsears
la source