#Este é um post fechado Este post está disponível para assinantes da Java Magazine DIGITAL ou para quem possui Créditos DevMedia. Clique aqui para saber mais sobre como abrir este post!
Artigo Java Magazine 76 - Desenvolvendo com JavaServer Faces
Abordagem dos principais recursos do Facelets, mostrando a configuração de um projeto JSF e o desenvolvimento de templates e Tag Resource Files.
Java Magazine 76
[Artigo já está disponível no Leitor Digital DevMedia®. Clique aqui para acessá-lo]
> Clique aqui para ler todos os artigos da Java Magazine 76
[Artigo já está disponível no Leitor Digital DevMedia®. Clique aqui para acessá-lo]
> Clique aqui para ler todos os artigos da Java Magazine 76
Desenvolvendo com JavaServer Faces
Crie templates, tag files e incremente sua aplicação JSF
Conheça os fundamentos do Facelets, uma tecnologia alternativa ao JSP para criação de views mais poderosas em aplicações JSF
Nos dois primeiros artigos da série, foram abordados os conceitos básicos de JSF e os passos para criação de componentes de interface gráfica. Na primeira parte, foi proposta a criação de um registro de clientes onde foram aplicados alguns dos principais fundamentos e componentes padrões do JSF. A segunda parte mostrou a criação de componentes úteis, para exibição das fotos dos produtos e tooltips customizados, permitindo uma maior valorização das informações presentes na guia de produtos da loja virtual.
Ao longo da abordagem até então, a tecnologia utilizada para construção das páginas foi a JavaServer Pages. O uso da JSP como tecnologia de visualização JSF possui algumas implicações como: o suporte precário à montagem da árvore de componentes, a falta de mecanismos para criação de templates e a falta de suporte para composição de componentes. O Facelets tem como foco a criação de templates, reutilização de código e facilidade de desenvolvimento através da implementação, a partir do zero, de uma tecnologia de interface gráfica para JSF de maior performance. Essas características auxiliam na redução da quantidade de código gasta para geração de interfaces gráficas comparadas com páginas JSP.
O presente artigo objetiva apresentar os conceitos básicos e os principais recursos do Facelets, que auxiliarão o leitor a incrementar suas aplicações JSF. Ao longo do artigo, será criado um template para a loja virtual de livros e serão configurados os componentes criados no artigo anterior para serem reconhecidos no contexto Facelets. Serão abordados também tópicos mais avançados como a criação de tag files e criação de funções EL.
Conceitos Básicos
A JavaServer Pages era a tecnologia padrão usada pela comunidade para criar interfaces gráficas web em Java. A utilização da JSP como tecnologia de criação de páginas JSF possibilitou a adoção de ersos desenvolvedores. Porém, esta decisão expôs alguns problemas, como por exemplo, a falta de sincronismo entre o fluxo de execução JSP e o ciclo de vida dos componentes JSF. O processamento JSP ocorre do topo até o fim da página assim que a página é chamada. Deste modo, a execução do conteúdo JSF e conteúdo não JSF acontece em momentos distintos, conduzindo a problemas indesejados. A Listagem 1 ilustra um exemplo relacionado a esses problemas.
Listagem 1. Problema de renderização de conteúdo JSP.
1 <h:panelGroup>
2 <h:outputText value="Texto 1"/>
3 Texto 2
4 </h:panelGroup>
Neste código, há a mistura de componentes JSF com textos livres. Os textos livres também poderiam ser substituídos por tags HTML que o resultado seria semelhante (Figura 1). Analisando esta figura, por que “Texto 2” foi exibido antes do “Texto 1”? Como era de se esperar, o container JSP exibe “Texto 2” assim que ele é encontrado na página, porém, o componente <h:panelGroup> exibe os componentes filhos apenas quando a execução atinge o fim do corpo da tag, ou seja, ao chegar na linha 4. Como o “Texto 2” não é considerado um componente, ele não faz parte desta execução.
Texto 2
Texto 1
Figura 1. Exemplo de execução dentro do container JSP.
O Facelets é uma linguagem de template desenvolvida para a tecnologia JSF. Além de resolver problemas como o exibido acima, ele oferece mecanismos que favorecem a manipulação de componentes, nos quais a geração e a renderização destes componentes são realizadas de acordo com o ciclo de vida. A exemplo disso, as páginas são criadas, por padrão, usando o formato XHTML, permitindo montar a árvore de componentes de forma mais intuitiva, seguindo a abordagem de componentes proposta pelo Faces.
O Facelets possui uma implementação para reduzir as incompatibilidades entre JSTL e JSF associadas ao fluxo de execução das tags JSTL. Deste modo, essas tags podem ser intercaladas com tags JSF, facilitando a implementação de certas funcionalidades. Por exemplo, fazer a iteração dos elementos de uma lista sem a necessidade de usar um DataTable, ou mesmo controlar a exibição de determinados conteúdos que, em muitos casos, o uso da propriedade rendered, para controlar a exibição dos elementos na página, implica na complexidade do código.
JSTL: A JSTL (JavaServer Pages Standard Tag Library) são componentes web Java EE definidos pela JSR 52 (JSTL 1.0, 1.1 e 1.2) e pela JSR 267 (Web Services). A JSTL oferece componentes para tarefas comuns como iteração e condicionais, tags para documentos XML, internacionalização e manipulação SQL.
As Expression Languages (EL) são unificadas e incluem suporte às funções e métodos de validação EL. A unificação basicamente oferece o mesmo suporte oferecido pela JSP EL e adiciona funcionalidades extras como a execução de expressões seguindo a definição do ciclo de vida, permitindo a execução correta de tags de iteração JSTL.
ATENÇÃO! A exibição deste artigo foi interrompida.
#Este é um post fechado
Este post está disponível para assinantes da Java Magazine DIGITAL ou para quem possui Créditos DevMedia. Clique aqui para saber mais sobre como abrir este post!
Crie templates, tag files e incremente sua aplicação JSF
Conheça os fundamentos do Facelets, uma tecnologia alternativa ao JSP para criação de views mais poderosas em aplicações JSF
Nos dois primeiros artigos da série, foram abordados os conceitos básicos de JSF e os passos para criação de componentes de interface gráfica. Na primeira parte, foi proposta a criação de um registro de clientes onde foram aplicados alguns dos principais fundamentos e componentes padrões do JSF. A segunda parte mostrou a criação de componentes úteis, para exibição das fotos dos produtos e tooltips customizados, permitindo uma maior valorização das informações presentes na guia de produtos da loja virtual.
Ao longo da abordagem até então, a tecnologia utilizada para construção das páginas foi a JavaServer Pages. O uso da JSP como tecnologia de visualização JSF possui algumas implicações como: o suporte precário à montagem da árvore de componentes, a falta de mecanismos para criação de templates e a falta de suporte para composição de componentes. O Facelets tem como foco a criação de templates, reutilização de código e facilidade de desenvolvimento através da implementação, a partir do zero, de uma tecnologia de interface gráfica para JSF de maior performance. Essas características auxiliam na redução da quantidade de código gasta para geração de interfaces gráficas comparadas com páginas JSP.
O presente artigo objetiva apresentar os conceitos básicos e os principais recursos do Facelets, que auxiliarão o leitor a incrementar suas aplicações JSF. Ao longo do artigo, será criado um template para a loja virtual de livros e serão configurados os componentes criados no artigo anterior para serem reconhecidos no contexto Facelets. Serão abordados também tópicos mais avançados como a criação de tag files e criação de funções EL.
Conceitos Básicos
A JavaServer Pages era a tecnologia padrão usada pela comunidade para criar interfaces gráficas web em Java. A utilização da JSP como tecnologia de criação de páginas JSF possibilitou a adoção de ersos desenvolvedores. Porém, esta decisão expôs alguns problemas, como por exemplo, a falta de sincronismo entre o fluxo de execução JSP e o ciclo de vida dos componentes JSF. O processamento JSP ocorre do topo até o fim da página assim que a página é chamada. Deste modo, a execução do conteúdo JSF e conteúdo não JSF acontece em momentos distintos, conduzindo a problemas indesejados. A Listagem 1 ilustra um exemplo relacionado a esses problemas.
Listagem 1. Problema de renderização de conteúdo JSP.
1 <h:panelGroup>
2 <h:outputText value="Texto 1"/>
3 Texto 2
4 </h:panelGroup>
Neste código, há a mistura de componentes JSF com textos livres. Os textos livres também poderiam ser substituídos por tags HTML que o resultado seria semelhante (Figura 1). Analisando esta figura, por que “Texto 2” foi exibido antes do “Texto 1”? Como era de se esperar, o container JSP exibe “Texto 2” assim que ele é encontrado na página, porém, o componente <h:panelGroup> exibe os componentes filhos apenas quando a execução atinge o fim do corpo da tag, ou seja, ao chegar na linha 4. Como o “Texto 2” não é considerado um componente, ele não faz parte desta execução.
Texto 2
Texto 1
Figura 1. Exemplo de execução dentro do container JSP.
O Facelets é uma linguagem de template desenvolvida para a tecnologia JSF. Além de resolver problemas como o exibido acima, ele oferece mecanismos que favorecem a manipulação de componentes, nos quais a geração e a renderização destes componentes são realizadas de acordo com o ciclo de vida. A exemplo disso, as páginas são criadas, por padrão, usando o formato XHTML, permitindo montar a árvore de componentes de forma mais intuitiva, seguindo a abordagem de componentes proposta pelo Faces.
O Facelets possui uma implementação para reduzir as incompatibilidades entre JSTL e JSF associadas ao fluxo de execução das tags JSTL. Deste modo, essas tags podem ser intercaladas com tags JSF, facilitando a implementação de certas funcionalidades. Por exemplo, fazer a iteração dos elementos de uma lista sem a necessidade de usar um DataTable, ou mesmo controlar a exibição de determinados conteúdos que, em muitos casos, o uso da propriedade rendered, para controlar a exibição dos elementos na página, implica na complexidade do código.
JSTL: A JSTL (JavaServer Pages Standard Tag Library) são componentes web Java EE definidos pela JSR 52 (JSTL 1.0, 1.1 e 1.2) e pela JSR 267 (Web Services). A JSTL oferece componentes para tarefas comuns como iteração e condicionais, tags para documentos XML, internacionalização e manipulação SQL.
As Expression Languages (EL) são unificadas e incluem suporte às funções e métodos de validação EL. A unificação basicamente oferece o mesmo suporte oferecido pela JSP EL e adiciona funcionalidades extras como a execução de expressões seguindo a definição do ciclo de vida, permitindo a execução correta de tags de iteração JSTL.
ATENÇÃO! A exibição deste artigo foi interrompida.
#Este é um post fechado Este post está disponível para assinantes da Java Magazine DIGITAL ou para quem possui Créditos DevMedia. Clique aqui para saber mais sobre como abrir este post!

Você está em:
canal Java
Publicidade
Marcos Sousa
Space do autor
Marcos Sousa (falecomigo at marcossousa dot com,
www.marcossousa.com) é desenolvedor Java desde 2004 e já atuou em vários projetos voltados para diversas áreas como: mineração, comércio, educação e governos. Atualmente, é líder de desenvolvimento na Squadra T...
Space do autor

Estudo comparativo entre banco de dados IBM Informix e Microsoft SQL
0
0
Conheça os planos de créditos DevMedia e visualize esse post agora mesmo!