Junho de 2002: O JSTL 1.0 foi introduzido com o EL pela primeira vez. Foram essas ${}
coisas que funcionam apenas nas tags JSTL. Ele foi projetado para chamar get
métodos Javabean .
Novembro de 2003: o JSP 2.0 foi introduzido e o EL foi movido do JSTL 1.0 para o JSP 2.0 no javax.servlet.jsp.el
pacote e tornou-se o EL padrão como parte do padrão J2EE 1.4. O JSTL 1.1 foi enviado sem EL. Agora ${}
funciona também fora das tags JSTL no texto do modelo JSP.
Março de 2004: O JSF 1.0 foi introduzido com o EL diferido no javax.faces.el
pacote. Foram essas #{}
coisas que funcionam apenas dentro das tags JSF. A diferença com o JSP EL padrão ${}
é que ele não apenas funciona get
, mas também pode funcionar set
. Isso era obrigatório para a criação automática de bean gerenciado e a configuração dos valores dos componentes de entrada. O EL padrão também ${}
funciona nas tags de saída JSF, mas elas não criarão beans automaticamente se ainda não existirem no escopo e não definirão valores de entrada.
Maio de 2005: Enquanto ainda se preparava para o novo JSP 2.1, que deve ser lançado em maio de 2006, o EL diferido #{}
foi extraído do JSF e combinado com o EL padrão ${}
no javax.el
pacote. Nesse ponto, tornou-se EL unificado, que foi introduzido com o JSF 1.2 e mais tarde tornou-se parte do JSP 2.1 e Java EE 5 padrão. O #{}
agora também pode ser usado em tags JSP de get
valores, mas não set
valores. O ${}
agora pode em JSP também criar automaticamente managed beans, mas não set
valores.
Novembro de 2006: Facelets foi introduzido como sucessor do JSP. Permitiu o uso de #{}
no texto do modelo fora das tags JSF, como substituto <h:outputText>
sem atributos. Também trata ${}
como #{}
, para que ambos se comportem da mesma maneira no Facelets.
Dezembro de 2009: O EL foi extraído da especificação JSP e tornou-se uma especificação autônoma que será mantida independentemente do JSP, a primeira versão sendo EL 2.2 (JSR-245), análoga ao JSP 2.2. O novo recurso principal é chamar métodos parametrizados em vez de chamar somente getters / setters Javabeanos dentro da #{}
sintaxe, por exemplo #{bean.method(argument)}
. Além disso, o Facelets passou a fazer parte do padrão Java EE 6.
Jun 2013: Foi introduzido o EL 3.0, que vem com um processador EL independente, permitindo o uso em um aplicativo Java SE simples. Outros novos recursos principais são o novo operador de concatenação de strings +=
, novas operações para objetos de coleção, incluindo fluxos e expressões Lambda ->
(mesmo em Java 6/7!) E importação de constantes no escopo do EL.