Por que eu devo ler este artigo: Este artigo tem por objetivo apresentar um tutorial sobre a construção de uma aplicação web com JavaServer Faces e RichFaces. Durante o desenvolvimento serão aplicadas boas práticas e design patterns, como o padrão arquitetural Model-View-Controller, e o uso da ferramenta Maven para construir e gerenciar o projeto.
Em que situação o tema é útil: Este artigo ajudará o leitor que deseja
conhecer mais detalhadamente sobre o desenvolvimento de aplicações web com o framework RichFaces, seguindo o
padrão MVC e utilizando o Maven como ferramenta de construção, automação de testes e gerenciamento de
dependências do projeto.
O padrão arquitetural MVC (Model-View-Controller) acabou se consolidando como uma unanimidade no desenvolvimento de aplicações web. Baseado neste padrão surgiu a especificação JavaServer Faces (JSF), atualmente considerada pela comunidade Java como uma referência em termos de desenvolvimento de sistemas web.
Entretanto, mesmo com os recursos oferecidos pelo JSF, ainda se faz necessário empregar frameworks que visam simplificar o processo de construção da interface visual da aplicação. O RichFaces é um destes frameworks. Ele disponibiliza uma rica biblioteca de componentes de interface com o usuário (User Interface, ou UI)que são utilizados em aplicações desenvolvidas a partir do JSF. Uma das principais características do RichFaces é o uso integrado de Ajax em seus componentes.
Quando trabalhamos com essa diversidade de tecnologias, torna-se um processo trabalhoso ter que fazer o download de um framework, procurar e baixar todas as suas dependências e, além disso, ter que se preocupar com a compatibilidade entre as versões destas dependências.
O projeto Maven, hospedado pela Apache Software Foundation, é uma ferramenta de automação de compilação que proporciona vários recursos, como o gerenciamento de dependências, a facilitação do processo de construção do projeto, o controle de releases e a execução de testes automatizados. De acordo com seu site oficial, o Maven pode ser usado para construir e gerenciar qualquer projeto baseado em Java, tornando sua construção mais simples e acessível para o desenvolvedor.
Sabendo da importância da aplicação de design patterns, de boas práticas e dos benefícios proporcionados pelo Maven, neste artigo será apresentada a construção de uma aplicação Web para realizar o cadastro de livros e autores de uma livraria, utilizando para isso o JSF 2.0, RichFaces 4.3.1, Maven 3.0.5 e Tomcat 7.0. Também será abordada a configuração e integração de todas estas tecnologias. Apesar de simples, essa aplicação introduzirá o leitor aos principais conceitos dessas tecnologias para que ele possa ter uma base para criar aplicações mais complexas.
O padrão MVC
O padrão arquitetural Model-View-Controller (Modelo-Visão-Controle), ou apenas MVC, introduzido por Trygve Reenskaug em meados dos anos 70, fornece uma maneira de separar a interface com o usuário da lógica de negócio e do acesso a dados, através de um modelo de três camadas.
Basicamente, o MVC consiste em três tipos de objetos:
- O Modelo, que contém todos os dados, estados e a lógica da aplicação;
- A Visão, que representa a interface visual do usuário com o sistema;
- O Controlador, que define o comportamento da aplicação.
Com base na ação do usuário e no resultado do processamento do modelo, o controlador seleciona uma visualização a ser exibida como parte da resposta à solicitação do usuário. Ao final da execução, a visão deve garantir que a apresentação dos dados reflita o estado atual do modelo.
O MVC tem por principal objetivo obter reusabilidade de código, desacoplando completamente o modelo das outras camadas. Mesmo sendo originalmente criado para soluções desktop, este padrão foi adotado com unanimidade no desenvolvimento de aplicações Web pela maioria das linguagens de programação.
Com o uso do JavaServer Faces, por exemplo, podemos facilmente aplicar o padrão MVC quando desenvolvendo uma aplicação Web em Java. Além disso, por esse framework ser baseado em componentes, ele pode ser facilmente estendido, abrindo portas para a criação de outros componentes ainda mais ricos e poderosos, como os do RichFaces.
Conhecendo o Maven
Com o propósito de facilitar o gerenciamento de dependências e a construção do projeto, iremos criar a aplicação LivrariaDevMedia através do Maven. Por esta ser uma ferramenta Java, é indispensável ter o Java Development Kit (JDK) instalado. Durante o desenvolvimento, utilizaremos ainda algumas das novas funcionalidades que foram incluídas no Java 7, como o gerenciamento automático de recursos, sendo assim, será necessário adotar o JDK 7.
Para instalar o Maven, faça o download no site oficial do projeto, que pode ser consultado na seção Links. A última versão disponível no momento da escrita deste artigo é a 3.0.5. Na página de downloads também podem ser encontradas as instruções de instalação do Maven para cada sistema operacional.
Descompacte o arquivo baixado (ex: apache-maven-3.0.5-bin.zip) no diretório onde você deseja que o Maven seja instalado. Em seguida, adicione a variável de ambiente M2_HOME com seu valor apontando para este diretório (ex: M2_HOME=/home/diego/dev/apache-maven-3.0.5). Por último, adicione esta variável ao seu path. No Linux, por exemplo, seria algo parecido com PATH=$PATH:$JAVA_HOME/bin:$M2_HOME/bin.
Para verificar se o Maven está funcionando corretamente, digite o comando mvn –v no terminal. Caso tenha problemas na instalação, certifique-se que a variável de ambiente do Java JAVA_HOME) também esteja configurada no PATH.
Se você estiver trabalhando através de proxy, será necessário configurá-lo no Maven, a partir do arquivo settings.xml, localizado dentro da pasta conf no diretório de instalação desta ferramenta. Um exemplo desta configuração é exibido na Listagem 1.
<proxies> <proxy> <active>true</active> <protocol>http</protocol> <host>proxy.somewhere.com</host> <port>8080</port> <username>proxyuser</username> <password>somepassword</password> <nonProxyHosts>localhost</nonProxyHosts> </proxy> </proxies>
Criando o projeto
Iniciaremos a construção da aplicação Web a partir do uso da ferramenta de geração de projetos baseados em templates do Maven conhecida como Archetype. Para isso, por meio de um terminal, navegue até o diretório onde deseja que o projeto seja criado e execute o comando:
mvn archetype:generate -DgroupId=com.devmedia -DinteractiveMode=false -DartifactId=LivrariaDevMedia -DarchetypeArtifactId=maven-archetype-webapp
Este comando faz com que o Maven crie a estrutura de diretórios de uma aplicação web Java baseada no template declarado no parâmetro -DarchetypeArtifactId, ou seja, maven-archetype-webapp. Além deste, outros dois parâmetros necessários para a execução desse comando são:
- –DgroupId: diz a qual grupo de projetos da companhia esta aplicação irá pertencer. A própria Apache recomenda que seu valor siga a mesma convenção de nomeação que é feita para os pacotes do projeto;
- –DartifactId: define o nome da aplicação, e deve ser um identificador único entre o grupo de projetos.
Para concluir essa etapa, precisamos completar a estrutura de diretórios gerada automaticamente pelo template maven-archetype-webapp, adicionando a ela dois pacotes: um para códigos fonte e outro para códigos de teste. Como ainda não importamos esse projeto em uma IDE, os pacotes deverão ser criados manualmente, o que pode ser feito por meio de um terminal, ou pelo próprio Explorer (caso o leitor esteja usando o Windows). Para isso, acesse a pasta src, localizada no diretório do projeto LivrariaDevMedia, e crie a pasta java dentro de main. Em seguida, volte à pasta src, e nela crie a pasta test. Por último, crie a pasta java dentro de test.
Ao final destes procedimentos, devemos ter uma estrutura de diretórios semelhante à exibida na Figura 1.
Importando o projeto no Eclipse
Com o objetivo de facilitar a codificação, vamos integrar o projeto recém-criado ao Eclipse. Para que isso seja possível, no entanto, é necessário gerar os arquivos de configuração desta IDE na pasta raiz do projeto, ou seja, a pasta onde se encontra o arquivo pom.xml.
Felizmente, o Maven possui uma ferramenta que gera as configurações necessárias para que seja possível importar este projeto no Eclipse. Para isso, em um terminal, navegue até a pasta raiz do projeto e execute o comando:
...Confira outros conteúdos:
Black November
Desconto exclusivo para as primeiras 200 matrículas!
Pagamento anual
12x no cartão
De: R$ 69,00
Por: R$ 59,00
Total: R$ 708,00
Garanta o desconto
- Formação FullStack Completa
- Carreira Front-end I e II, Algoritmo e Javascript, Back-end e Mobile
- +10.000 exercícios gamificados
- +50 projetos reais
- Comunidade com + 200 mil alunos
- Estude pelo Aplicativo (Android e iOS)
- Suporte online
- 12 meses de acesso
Pagamento recorrente
Cobrado mensalmente no cartão
De: R$ 79,00
Por: R$ 64,00 /mês
Total: R$ 768,00
Garanta o desconto
- Formação FullStack Completa
- Carreira Front-end I e II, Algoritmo e Javascript, Back-end e Mobile
- +10.000 exercícios gamificados
- +50 projetos reais
- Comunidade com + 200 mil alunos
- Estude pelo Aplicativo (Android e iOS)
- Suporte online
- Fidelidade de 12 meses
- Não compromete o limite do seu cartão
<Perguntas frequentes>
Nossos casos de sucesso
Eu sabia pouquíssimas coisas de programação antes de começar a estudar com vocês, fui me especializando em várias áreas e ferramentas que tinham na plataforma, e com essa bagagem consegui um estágio logo no início do meu primeiro período na faculdade.
Estudo aqui na Dev desde o meio do ano passado!
Nesse período a Dev me ajudou a crescer muito aqui no trampo.
Fui o primeiro desenvolvedor contratado pela minha
empresa. Hoje eu lidero um time de desenvolvimento!
Minha meta é continuar estudando e praticando para ser um
Full-Stack Dev!
Economizei 3 meses para assinar a plataforma e sendo sincero valeu muito a pena, pois a plataforma é bem intuitiva e muuuuito didática a metodologia de ensino. Sinto que estou EVOLUINDO a cada dia. Muito obrigado!
Nossa! Plataforma maravilhosa. To amando o curso de desenvolvimento front-end, tinha coisas que eu ainda não tinha visto. A didática é do jeito que qualquer pessoa consegue aprender. Sério, to apaixonado, adorando demais.
Adquiri o curso de vocês e logo percebi que são os melhores do Brasil. É um passo a passo incrível. Só não aprende quem não quer. Foi o melhor investimento da minha vida!
Foi um dos melhores investimentos que já fiz na vida e tenho aprendido bastante com a plataforma. Vocês estão fazendo parte da minha jornada nesse mundo da programação, irei assinar meu contrato como programador graças a plataforma.
Wanderson Oliveira
Comprei a assinatura tem uma semana, aprendi mais do que 4 meses estudando outros cursos. Exercícios práticos que não tem como não aprender, estão de parabéns!
Obrigado DevMedia, nunca presenciei uma plataforma de ensino tão presente na vida acadêmica de seus alunos, parabéns!
Eduardo Dorneles
Aprendi React na plataforma da DevMedia há cerca de 1 ano e meio... Hoje estou há 1 ano empregado trabalhando 100% com React!
Adauto Junior
Já fiz alguns cursos na área e nenhum é tão bom quanto o de vocês. Estou aprendendo muito, muito obrigado por existirem. Estão de parabéns... Espero um dia conseguir um emprego na área.
Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.