• Skip to primary navigation
  • Skip to content

Mauda

IT, Java and Music

Graduação   SCJP   Mestrado
  • Apresentação
  • Certificação Java
  • JPA
    • Exceptions
  • JSF
  • Versionamento
  • Contato

Criando um projeto Maven + JSF na IDE Eclipse

August 20, 2018 by Mauda 3 Comments

Conteúdo do Post:
  1. JSF – definição
  2. Incluindo o JSF em um Projeto Maven básico na IDE Eclipse
  3. Alterando o pom.xml
  4. Criação das pastas webapp e WEB-INF
  5. Criação do arquivo faces-config.xml
  6. Criação do arquivo web.xml
  7. Criação do arquivo index.xhtml
  8. Configuração do server para rodar o projeto
  9. Projeto em execução no servidor
  10. 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:

Java
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:

Java
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.

Fig08
Figura 01 – Opção Maven > Update Project…

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:

XHTML
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:

XHTML
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:

Java
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:

Figura 02 – Estado final do projeto após a criação das pastas e arquivos para rodar o JSF

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:

Figura 03 – Execução da página inicial do Projeto

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!

 

Filed Under: JSF, Maven Tagged With: faces-config.xml, JSF, maven, WEB-INF, web.xml, webapp

About Mauda

Mestre em Informática, Analista de Sistemas, Professor, SCJP e Baterista. Desde 2002 trabalhando no mundo Java e ensinando pessoas sobre desenvolvimento de sistemas. Mais informações

Reader Interactions

Comments

  1. Luciano says

    October 12, 2020 at 3:47 pm

    Obrigado pelo post, teria laguma indicação de livros?

    Reply
    • Mauda says

      October 13, 2020 at 8:35 pm

      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!

      Reply
  2. Thiago says

    March 28, 2023 at 11:04 am

    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 …..?

    Reply

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Advertisements

Copyright © 2025 · Genesis Framework · WordPress · Log in