bsp;

Conheça novidades dos novos JSF 1.2 e JSP 2.1, que enfocam a integração entre as tecnologias – num esforço conjunto para o J2EE 5.0

 

Quando o JCP publicou a versão final da especificação do JSP 2.0 (JSR-152) em novembro de 2003 (e depois de quase um ano e meio de trabalho) o JavaServer Faces 1.0 ainda estava sendo definido. O resultado é que as duas especificações acabaram nascendo bastante isoladas. Quem já experimentou o JSF além do básico, provavelmente já sentiu alguns problemas causados por inconsistências ou incompatibilidades entre as duas especificações.

O objetivo deste pequeno artigo é mostrar o que está sendo feito no JSR-245 (JSP 2.1) e no JSR-252 (JSF 1.2) para unificar as tecnologias de desenvolvimento web em tempo para o J2Ee 5.0.

 

Linguagem de expressões unificadas

Como o JSP 1.2 não tinha uma linguagem de expressões (EL) integrada, e a EL do JSP 2.0 não atendia às necessidades do JSF, uma nova linguagem de expressões precisou ser desenvolvida para o JSF 1.0. Com isso, embora tivesse se tentado manter as duas Els o mais próximas possível, terminaram surgindo diferenças significativas.

Por exemplo, seria natural pensar que o código JSF da Listagem 1 imprimisse duas vezes a mensagem “Olá Mundo”. Mas isso não acontece. A variável str está no escopo da página, mas como o JSF é independente do JSP, esse escopo é ignorado, pois ele pode não existir em outras tecnologias que suportem o JSF. Assim a segunda mensagem não é exibida.

O principal objetivo do JSP 2.1 é o desenvolvimento de uma EL que seja, ao mesmo tempo, extensível e que atenda às necessidades do JSF. A especificação desta EL está sendo feita, com o apoio do grupo de especialistas do JSF 1.2, em um documento separado do restante da especificação do novo JSP.

As mudaas mais importantes (em andamento) são:

Criação do novo pacote javax.el. A API de EL do JSF (javax.faces.el) se tornará deprecated, em virtude da nova API unificada.

A linguagem de expressões se independente de quem i interpretá-la; a interpretação pode ser feita pelo próprio JSP, pelo JSF, ou por um interpretador (resolver) customizado. Por exemplo, poderemos criar um novo interpretador de expressões criando uma subclasse de

...

Quer ler esse conteúdo completo? Tenha acesso completo