Este é um post disponível para assinantes MVPou para quem possui Créditos DevMedia. Clique aqui para saber mais!
JSF 2: introdução - Revista easy Java Magazine 15
Neste artigo veremos como criar uma aplicação web básica utilizando JavaServer Faces 2, bem como diversos recursos que esta tecnologia proporciona para lidar com problemas comuns deste tipo de aplicação
Você não gostou da qualidade deste conteúdo?
(opcional) Você gostaria de comentar o que não lhe agradou?
[Artigo disponível no Leitor Digital DevMedia. Clique aqui para acessá-lo]
> Clique aqui para ler todos os artigos da Easy Java Magazine 15
Desenvolvimento para web é um assunto muito discutido no contexto da tecnologia Java. Há anos a comunidade de software tem se esforçado para projetar e criar melhores formas de criar sistemas para web com esta linguagem. Atualmente, uma das tecnologias mais utilizadas para o desenvolvimento em Java deste tipo de aplicação é o JavaServer Faces (JSF). O JSF é a especificação de um framework para aplicações web definido na padronização do Java Enterprise Edition (Java EE). A nova versão desta tecnologia (o JSF 2.0) traz uma série de recursos úteis para o desenvolvedor de software, como a definição de componentes através de anotações, trabalho nativo com Facelets, AJAX, integração com CDI e diversos outros itens.
Para demonstrar como utilizar este framework, este artigo visa apresentar ao leitor com algum conhecimento de aplicativos web em Java (por exemplo, Servlets e JSPs) as vantagens do JSF, já considerando os recursos desta segunda versão. Também é nosso intuito demonstrar alguns mecanismos úteis desta nova versão para conhecedores de JSF, integrada com o mecanismo padrão de injeção de dependências do Java EE (o CDI – Contexts and Dependency Injection), e a simplificação de sua utilização prática no dia-a-dia.
Neste artigo baseamos nossas explicações conforme desenvolvemos algumas funcionalidades em um sistema web. Portanto é fundamental que o leitor “brinque” um pouco com os recursos aqui exemplificados e adquira conhecimento a partir dessas experiências.
Para isso, desenvolveremos algumas funcionalidades básicas de um sistema de aluguel de carros. Primeiro aprenderemos como criar um pacote JSF 2 instalável em um servidor Java EE. Posteriormente criaremos uma funcionalidade exemplo (um cadastro de modelos de carros), demonstrando alguns componentes básicos do JSF e como funciona o ciclo de vida de uma chamada. Após isto, transformaremos pouco a pouco nossa aplicação, passando por conceitos como navegação, internacionalização, validadores, conversores, layouts, AJAX, etc.
Montando o ambiente
Existem várias formas de preparar um ambiente para desenvolver uma aplicação com JSF 2. Uma maneira muito utilizada no mercado é através do projeto Maven. Para quem não conhece, o Maven é uma ferramenta bastante útil para tratar do empacotamento de projetos Java e gerenciar suas dependências (entre algumas outras coisas). Porém, estruturar adequadamente um projeto Maven pode ser complicado caso você não tenha experiência nesta ferramenta, portanto você pode utilizar as IDEs como o Eclipse e o NetBeans para ajudar nestes casos (eles possuem esqueletos de projetos web já prontos e fáceis de utilizar e gerar os pacotes necessários). No entanto, independente da solução adotada, o mais importante para um projeto Java web é discutir o conteúdo do pacote WAR (que em nosso caso será o locadora.war), pois representa o pacote de instalação da aplicação.
Consideramos que o leitor já possui conhecimento de como se cria uma aplicação web em Java (utilizando Servlets e/ou JSPs, por exemplo), bem como a estrutura básica de um arquivo WAR. Demonstraremos a preparação de um ambiente exemplo utilizando o Maven para configurar nosso projeto. Apesar disto, sugerimos que o leitor prepare sua aplicação Java Web da maneira com que já está acostumado, e por isto, nossos exemplos de aplicação estarão apenas baseados na estrutura do pacote WAR, e livre das ferramentas de desenvolvimento utilizadas para a montagem deste pacote.
Para este artigo, demonstraremos a API do JSF 2 já integrada com o CDI (um mecanismo de injeção de dependências padronizado no Java EE 6), e por isto, utilizaremos o servidor de aplicação JBoss 7.0.2-Final (Web Profile). Além de possuir uma versão gratuita para download, este servidor já possui suporte a ambas as tecnologias em versões consideravelmente atualizadas, e por isto nosso arquivo.war não necessita possuir nenhuma biblioteca específica (dentro de /WEB-INF/lib) para rodar, apesar de você necessitá-las em seu classpath no momento da compilação de seu código.
Durante o desenvolvimento do artigo, utilizamos o Maven para simplificar a manipulação de dependências e a construção de nosso projeto. A utilização desta tecnologia não é obrigatória para acompanhar o conteúdo apresentado, porém consideramos que a criação de um projeto Maven padroniza a administração de alguns recursos na aplicação web.
Preparando o JBoss
Para instalar o servidor de aplicação JBoss 7.0.2-Final, é necessário baixá-lo em http://www.jboss.org/jbossas/downloads. Após isto, descompacte-o no local de sua preferência.
Para a execução de uma aplicação básica, é apenas necessário rodar o arquivo standalone.bat (ou standalone.sh em caso de sistemas Linux), localizado no diretório bin deste servidor. Esta execução deverá iniciar o servidor de aplicações, que poderá ser acessado no navegador através do endereço http://localhost:8080. Para instalarmos uma aplicação web, é apenas necessário incluir o pacote WAR no diretório standalone/deployments deste servidor e a aplicação correspondente será automaticamente instalada.
Preparando um projeto Maven
Como já mencionado, a utilização do Maven não é obrigatória para seguir os nossos exemplos e um detalhamento desta tecnologia foge ao escopo deste artigo. Apesar disto, demonstramos como preparar uma aplicação Java Web com as dependências necessárias para rodar os exemplos aqui apresentados.
Para preparar o nosso projeto utilizando o Maven execute os seguintes passos:
1. Instale o Maven seguindo os procedimentos encontrados em http://maven.apache.org/download.html;
2. Crie um diretório com o nome locadora no local de sua preferência para representar o nosso projeto;
3. Crie um arquivo com nome pom.xml dentro do diretório locadora com o conteúdo indicado na Listagem 1;
4. Acesse o diretório locadora através de um prompt de comando e execute o comando: mvn clean install (espere o Maven realizar o download inicial das dependências e construir um pacote WAR);
5. Verifique no diretório locadora/target se o arquivo locadora.war foi criado com sucesso.
Listagem 1. Conteúdo do arquivo pom.xml.
<?xml
version="1.0" encoding="UTF-8"?>
<project
xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>br.com.simpleit</groupId>
<artifactId>locadora</artifactId>
<packaging>war</packaging>
"
Este é um post disponível para assinantes MVPou para quem possui Créditos DevMedia. Clique aqui para saber mais!
Pesquisador na empresa Maps Soluções e Serviços SA, além de ser instrutor de cursos relacionados a Java e Web na Globalcode. É doutorando e mestre em Ciência da Computação pelo IME-USP e bacharel em Sistemas de Informação pela EACH-USP, além de realizar pesquisas vinculadas a métodos ágeis de desenv...



