DevMedia - asp.net, Java, Delphi, SQL e web Design, tudo em um só lugar!
Bem vindo a DevMedia!
LOGIN:     SENHA:
 
 

  Este é um post disponível para assinantes MVP
Este post também está disponível para assinantes da Java Magazine DIGITAL
ou para quem possui Créditos DevMedia.  Clique aqui para saber mais!

Artigo Java Magazine 22 - Java Server Faces na Prática

Artigo publicado pela Java Magazine edição 22.

Esse artigo faz parte da revista Java Magazine edição 22. Clique aqui para ler todos os artigos desta edição

Atenção: por essa edição ser muito antiga não há arquivo PDF para download.Os artigos dessa edição estão disponíveis somente através do formato HTML. 

JavaServer Faces na Prática

Crie uma aplicação JSF completa

Conceitos, técnicas e vantagens de JavaServer Faces, a nova tecnologia padronizada para criação de aplicações web com alta interatividade

Julio Faerman

O desenvolvimento de interfaces gráficas (GUIs) com Java é um desafio. De um lado, o desktop rico (Swing) traz a programação baseada em componentes e eventos de alto nível, mas sofre com as necessidades de distribuição e outras dificuldades do modelo cliente/servidor, onde é mais usado. As interfaces web (baseadas em servlets, páginas JSP, documentos HTML etc.) resolvem muitas destas questões, mas expõem o desenvolvedor aos detalhes das tecnologias subjacentes, como a lógica de montagem do HTML e restrições do HTTP. Muito se fez para resolver este impasse, com avanços dos dois lados – alguns exemplos notáveis são o Java Web Start, o SWT, JSTL, Struts, entre muitas outras tecnologias.

A proposta do JavaServer Faces (JSF) é trazer o melhor dos universos web e desktop, criando uma nova camada sobre o modelo web tradicional, que seja capaz de renderizar componentes e manipular eventos. E o fato de ser um padrão do JCP (JSR-127), permite que sejam produzidas ferramentas de desenvolvimento e componentes de terceiros, trazendo compatibilidade e independência de fornecedor.

O objetivo deste artigo é mostrar o desenvolvimento de uma aplicação JSF passo a passo, ao mesmo tempo apresentando os principais conceitos e mecanismos da tecnologia. Será mostrado como criar interfaces JSF e como elas interagem com o restante dos seus sistemas. Para manter o foco em JSF, outros aspectos importantes foram deixados de lado como um foco maior em usabilidade e a lógica de persistência dos objetos.

No exemplo será apresentado o uso de componentes, eventos, backing beans, navegação, binding, validação, conversão e integração com JavaScript, usando JSF em uma pequena aplicação de reservas de passagens. Apesar de ser uma aplicação “completa”, seria inviável mostrar todos os componentes e mecanismos possíveis num único artigo. O intuito é fornecer uma boa base para que o leitor possa continuar explorando o JSF de acordo com seu interesse.

Preparação

A implementação de referência (RI) do JSF, disponibilizada pela Sun, cobre todos os aspectos da especificação, e pode ser usada no desenvolvimento de aplicativos e distribuída com eles, apesar de não ser de código aberto. Existem também outras implementações, como o MyFaces, que é open source e muito popular. O exemplo foi desenvolvido usando a RI, mas é facilmente adaptável para outras implementações.

Para usar a RI do JSF na sua aplicação é necessário que os arquivos jar da API e da implementação (jsf-api.jar e jsf-impl.jar) estejam no classpath do container web. Você pode colocar os jars no diretório de bibliotecas comuns do servidor (TOMCAT_HOME/shared/lib) ou no diretório das bibliotecas da aplicação (/WEB-INF/lib). Além disso, o descritor web.xml deve declarar o controlador do JSF, o FacesServlet, e seu mapeamento (veja a Listagem 1). Para rodar o exemplo usando o MyFaces, basta substituir as bibliotecas da RI pelas do MyFaces e adicionar um listener de inicialização no web.xml, como a seguir:

 

  <listener>

    <listener-class>
       net.sourceforge.myfaces.webapp.StartupServletContextListener

    </listener-class>

  </listener>

 

A aplicação web (war) do exemplo, disponível para download no site da Java Magazine junto com os fontes, já vem configurada. Basta implantá-la no container web de sua preferência (é recomendado na documentação da RI que o container suporte JSP 2.0). Para testar os exemplos foi usado o Tomcat 5.0.27.

 

Listagem 1. Descritor web.xml para a aplicação de exemplo

<?xml version="1.0" encoding="UTF-8"?>

<web-app xmlns="http://java.sun.com/xml/ns/j2ee"

   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"   

   xsi:schemaLocation=

     "http://java.sun.com/xml/ns/j2ee

      http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" version="2.4">

 

  <display-name>web</display-name>

  <servlet>

    <servlet-name>Faces Servlet</servlet-name>

    <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>

    <load-on-startup>1</load-on-startup>

  </servlet>

  <servlet-mapping>

    <servlet-name>Faces Servlet</servlet-name>

    <url-pattern>*.faces</url-pattern>

  </servlet-mapping>

</web-app>

Componentes e eventos

As abstrações de componentes e eventos são fundamentais no JSF. Componentes são elementos reutilizáveis que podemos usar da forma que são distribuídos, ou estender para fins específicos. No caso do JSF os componentes formam as "telas" (views) da aplicação. Um exemplo é o javax.faces.component.html.HTMLInputText, um campo de entrada de texto. Objetos desse tipo representam os campos dos formulários no servidor e são declarados nas páginas JSP como tags (no caso, a tag é <h:inputText />).

 

Nota: Os componentes são implementados como tags e classes associadas. Neste artigo, “componente” será usado com os dois sentidos, de acordo com o que estiver sendo apresentado.

"

A exibição deste artigo foi interrompida.

  Este é um post disponível para assinantes MVP
Este post também está disponível para assinantes da Java Magazine DIGITAL
ou para quem possui Créditos DevMedia.  Clique aqui para saber mais!


Julio Faerman
é consultor independente em desenvolvimento de sistemas corporativos e melhoria de processos de software. Certificado SCJP, SCWCD, SCBCD, SCDJWS e SCEA(I), bacharel em Ciência da Computação, MBA em Gerência de Projetos e Mestrando da Universidade Federal de Uberlândia.
O que você achou deste post?

    0 COMENTÁRIO

[Fechar]

Este post é fechado - você precisa ter acesso ao post para incluir um comentário.


Nenhum comentário foi postado - seja o primeiro a comentar!
Cursos relacionados
Publicidade
[Fechar]

Você precisa estar logado para dar um feedback.

Clique aqui para efetuar o login
[Fechar]


Este post está fechado. Saiba mais sobre a assinatura MVP!
web-03
DevMedia  |  Anuncie  |  Fale conosco
Hospedagem web por Porta 80 Web Hosting
2013 - Todos os Direitos Reservados a web-03