- JSF – definição
- Incluindo o JSF em um Projeto Maven básico na IDE Eclipse
- Alterando o pom.xml
- Criação das pastas webapp e WEB-INF
- Criação do arquivo faces-config.xml
- Criação do arquivo web.xml
- Criação do arquivo index.xhtml
- Configuração do server para rodar o projeto
- Projeto em execução no servidor
- finally{
Olá Pessoal, tudo bom?
O post de hoje é relacionado a adaptação de um projeto Maven para estar apto a rodar um sistema com páginas web no estilo JSF. Para tanto utilizaremos o post básico de criação de um projeto Maven como inicio de partida e adaptá-lo para que o JSF passe a funcionar corretamente. Veja na continuação desse post…
JSF – definição
O Java Server Faces (JSF) é uma especificação padrão, com vários processos aprovados dentro da Java Community Process, o qual trouxe um conceito de criação de interfaces de usuário no modo web, com componentes e outras características plugáveis dentro de uma aplicação Enterprise Edition (EE). Existem diversas bibliotecas que implementam novos componentes para o JSF, as quais serão destacadas em outros artigos. O ponto do artigo de hoje é a configuração de um projeto Maven já existente para que possa atuar com a especificação JSF.
Incluindo o JSF em um Projeto Maven básico na IDE Eclipse
Caso você não possua um projeto Maven, o primeiro ponto é criar o projeto básico do Maven conforme o post relacionado.
Depois de criado, é hora de começar a adaptação nos arquivos desse projeto a fim de utilizar a especificação.
Alterando o pom.xml
Abra o arquivo pom.xml, que se encontra na raiz do projeto.O primeiro ponto é mudar a forma de empacotamento do projeto. No projeto básico, o empacotamento é do tipo jar (Java Archive). Para que um projeto JSF funcione na hora de enviar para um servidor web, é necessário que o empacotamento seja do tipo war (Web Archive) . O código destacado abaixo mostra essa alteração:
1 2 3 4 5 6 7 8 9 10 |
<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/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>br.com.mauda</groupId> <artifactId>seminariosCientificos</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>war</packaging> <name>seminariosCientificos</name> |
Agora é o momento de adicionar as novas dependências ao projeto, que são as bibliotecas jsf-api e a jsf-impl. Ambas estão representadas no código abaixo:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
<dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> <scope>test</scope> </dependency> <!-- JSF library --> <dependency> <groupId>com.sun.faces</groupId> <artifactId>jsf-api</artifactId> <version>2.2.17</version> </dependency> <dependency> <groupId>com.sun.faces</groupId> <artifactId>jsf-impl</artifactId> <version>2.2.17</version> </dependency> </dependencies> |
Pronto, com esses códigos o maven irá adicionar as dependências do JSF ao projeto. Agora vamos baixar essas dependências. Clique com o botão direito sobre o projeto e vá na opção Maven > Update Project… conforme a Figura 01.
Agora é necessário criar algumas pastas e arquivos para que o projeto funcione corretamente.
Criação das pastas webapp e WEB-INF
Para o arquivo war ser criado e exportado corretamente dentro do JSF, é necessário criar duas pastas a webapp, que indica dentro do arquivo war qual é a pasta base do projeto na visão web, e a pasta WEB-INF, que armazena arquivos de configuração da aplicação web. Para tanto devemos criar uma folder de nome webapp dentro da pasta src/main. Agora dentro dessa folder webapp, crie outra folder de nome WEB-INF (isso mesmo, tudo maiúsculo).
Criação do arquivo faces-config.xml
O arquivo XML de nome faces-config possui algumas configurações básicas para o JSF. Nas versões antes da 2.0, este arquivo era muito utilizado, pois declarávamos tudo que existia do mundo JSF dentro dele. Com o advento das annotations no mundo Java e na especificação JSF, ele deixou de ser tão utilizado.
Para criar esse arquivo clique com o botão direito em cima da pasta WEB-INF e acesse a opção new > File e crie o arquivo faces-config.xml. Esse arquivo deverá possuir o seguinte conteúdo:
1 2 3 4 5 6 7 |
<?xml version="1.0" encoding="UTF-8"?> <faces-config xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd" version="2.0"> </faces-config> |
Os detalhes sobre esse arquivo exploraremos em outros artigos.
Criação do arquivo web.xml
O arquivo XML de nome web possui algumas configurações básicas para ser utilizado pelo JSF, porém antes do advento do JSF, este arquivo já era utilizado por servlets. Então muitas coisas que aqui podem ser apresentadas já existiam antes no Java.
Para criar esse arquivo clique com o botão direito em cima da pasta WEB-INF e acesse a opção new > File e crie o arquivo web.xml. Esse arquivo deverá possuir o seguinte conteúdo:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0"> <display-name>Seminarios Academicos</display-name> <welcome-file-list> <welcome-file>index.jsf</welcome-file> </welcome-file-list> <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>*.jsf</url-pattern> </servlet-mapping> </web-app> |
Os detalhes sobre esse arquivo exploraremos em outros artigos.
Criação do arquivo index.xhtml
O arquivo XHTML de nome index é o arquivo básico ao acessar o sistema a partir da url raiz do sistema. Para criar esse arquivo clique com o botão direito em cima da pasta webapp e acesse a opção new > File e crie o arquivo index.xhtml. Esse arquivo deverá possuir o seguinte conteúdo:
1 2 3 4 5 6 7 8 9 10 |
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://java.sun.com/jsf/html"> <h:head> <title>Seminarios Academicos</title> </h:head> <h:body> <h:outputLabel value="INDEX da Seminarios Academicos"/> </h:body> </html> |
Repare que em algumas linhas existe alguma tags que começam com h: (h:head, h:body…). Essas são tags JSF, dessa forma ao rodar essa página em um servidor, este irá interpretar essas tags de acordo com a especificação JSF e renderizar a página web conforme essa interpretação. Ao final de toda essa configuração seu projeto deverá estar como na Figura 02:
Configuração do server para rodar o projeto
Agora é o momento de configurar o servidor web para rodar esse projeto. Para realizar essa configuração siga esse tutorial.
Projeto em execução no servidor
Caso sua configuração esteja tudo correta, a tela será exibida ao acessar a página inicial do sistema, conforme Figura 03:
finally{
Duvidas ou sugestões? Deixe seu feedback! Isso ajuda a saber a sua opinião sobre os artigos e melhorá-los para o futuro! Isso é muito importante!
Até um próximo post!
Luciano says
Obrigado pelo post, teria laguma indicação de livros?
Mauda says
Olá Luciano, tudo bom?
Obrigado pelo feedback!
Tudo o q aprendi sobre JSF foi sofrendo na prática. E como o JSF está caindo em desuso nos últimos anos não tem muitos livros recentes. Um rápida pesquisa no google não constatei muitos títulos, mas achei esse q talvez seja interessante de dar uma olhada.
Practical JSF in Java EE 8: Web Applications in Java for the Enterprise
Obrigado! E precisando estamos aqui!
Thiago says
Muito bom conteúdo. Sempre quando eu criar um projeto Maven devo usar a última versão de todas as tecnologias ? Última do Maven, JSF, JBOSS, Hibernate, PrimeFaces, etc …..?