2011-01-27 4 views
115

Je voudrais connaître la différence détaillée entre les langues d'expression (EL). Il y a JSP EL, JSF EL et Unified EL. Je voudrais connaître l'histoire derrière le EL et ce que le dernier EL est utilisé dans les applications Java EE. Est-ce le commun des EL pour toutes les technologies d'affichage dans les dernières versions?Différence entre JSP EL, JSF EL et Unified EL

+7

pourquoi "fermé ne pas une vraie question"? - semble une question parfaitement valide et utile pour moi. –

+0

@MarkW: au moment où cette question était close, la "vraie question" était strictement définie et cette question n'était pas éligible. Aujourd'hui, il serait fermé comme «trop large» ou «principalement basé sur l'opinion» (en fonction de la partie de la question sur laquelle vous vous concentrez). De toute façon, la réouverture est un non-démarreur. –

Répondre

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

  • novembre 2003: JSP 2.0 a été introduit et EL a été déplacé de 1,0 à 2,0 JSTL JSP dans javax.servlet.jsp.el package et il est devenu norme EL dans le cadre de la norme J2EE 1.4. JSTL 1.1 a été livré sans EL. Maintenant, ${} fonctionne également en dehors des balises JSTL dans le texte du modèle JSP.

  • mars 2004: JSF 1.0 a été introduit avec différé EL dans le paquet javax.faces.el. Ce sont ces choses qui fonctionnent à l'intérieur des balises JSF seulement. La différence avec la norme JSP EL ${} est qu'il ne fait pas seulement get, mais peut également faire set. Cela était obligatoire pour la création automatique du bean géré et la définition des valeurs des composants d'entrée. La norme EL ${} fonctionne également dans les balises de sortie JSF, mais elles ne créeront pas automatiquement de beans si elles n'existent pas encore dans la portée et qu'elles ne définiront pas de valeurs d'entrée.

  • mai 2005: Tout en préparant encore de nouvelles JSP 2.1 qui devrait être publié en mai 2006, différé EL #{} a été extrait de JSF et combiné à la norme EL ${} dans le package javax.el. À 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 pour les valeurs get, mais pas pour les valeurs set. Le ${} peut désormais créer automatiquement des beans gérés dans JSP, mais pas les valeurs set.

  • Nov 2006: Facelets a été introduit en tant que successeur de JSP. Il a permis l'utilisation de #{} dans le texte du modèle en dehors des balises JSF, en remplacement de <h:outputText> sans attributs. Il traite également ${} comme #{}, de sorte qu'ils se comportent tous les deux dans Facelets. 2009: EL a été extrait de la spécification JSP et est devenu 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 consiste à appeler des méthodes paramétrées au lieu d'appeler uniquement des getters/setters Javabean à l'intérieur de la syntaxe #{}, par ex. #{bean.method(argument)}. En outre, Facelets est devenu une partie de la norme Java EE 6. Juin 2013: EL 3.0 a été présenté avec un processeur EL autonome, permettant une utilisation dans une application Java SE simple. Les 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.

14

Ajout à la réponse de BalusC ...EL12 a été initialement conçu et implémenté par Nathan Abramson de Art Technology Group en 2001. À l'époque, l'implémentation était connue sous le nom de langage d'expression possible le plus simple (SPEL). L'implémentation a ensuite été incluse dans le JSTL1.0. Nathan faisait partie du JSR-052 Expert Group, et a été crédité dans le JSTL specification comme la force motrice derrière le langage d'expression.

"Mention spéciale à Nathan Abramson pour être une force motrice de l'expression langue introduite dans JSTL"