Java Server Faces (JSF) - Começando do Zero - Programadores Brasil
JavaLinguagens de programação

[Iniciantes] Java Server Faces (JSF) – Começando do Zero

6 Mins read

A tecnologia Java Server Faces (JSF) é uma estrutura de front end que torna a criação de componentes de interface do usuário mais fácil, reutilizando os componentes de UI. O JSF é projetado com base no padrão Model View Controller (MVC) que separa a apresentação, o controlador e a lógica de negócios.

Java Server Faces (JSF) e o padrão MVC

No padrão MVC( Model View Controller), o model contém a lógica de negócios necessária para realizar o cenário de negócios, o view representa a camada de apresentação como as páginas JSP ou JSF e o controller representa o processo de manipulação do controle para o modelo / view dependendo da operação solicitada.

O Java Server Faces (JSF) fornece os seguintes componentes para criar uma interface de usuário:

  • Elementos de entrada básicos padrão, como campos, botões, etc., que formam o conjunto de componentes básicos da IU.
  • Capacidade de renderização do JSF dependendo das especificações do cliente
  • Biblioteca central
  • Estendendo os componentes de interface do usuário disponíveis para adicionar mais componentes e usá-los para cumprir os requisitos do cliente.

Veja também: [+] 4 Dicas de Como Escolher Os Melhores Cursos de Programação.

Java Server Faces (JSF) - Começando do Zero

Como instalar o Java JSF

Aqui, passaremos por todas as etapas necessárias para configurar seu computador para criar o primeiro aplicativo JSF.

Instalação JDK

Baixe o jdk do seguinte site da Oracle: https://www.oracle.com/technetwork/java/javase/downloads/index.html

Defina a variável de ambiente JAVA_HOME apontando para o caminho bin do jdk instalado. Por exemplo, “C: \ Arquivos de programas \ Java \ jdk1.7.0_60”. Adicione também JAVA_HOME \ bin à variável PATH para localizar os binários java.

Agora verifique se o java foi instalado com sucesso na máquina digitando javac na janela de comando que deve exibir todas as opções disponíveis ou “java -version” que deve mostrar a versão do java instalada na máquina.

Instalação do Apache Tomcat

Baixe o tomcat no seguinte link https://tomcat.apache.org/ . Execute o arquivo binário baixado e defina a variável CATALINA_HOME para apontar para o caminho de instalação. Agora inicie o servidor e vá para https: // localhost: 8080 em seu navegador favorito que exibe a página tomcat padrão se instalado com sucesso.

Nossa configuração básica está pronta, vamos prosseguir para a criação de nosso primeiro aplicativo JSF.

Tutorial JSF para iniciantes – aplicativo Hello World

Vamos agora criar um aplicativo da web JSF simples hello world.

Baixe os seguintes jars que são essenciais para executar o código relacionado ao Java Server Faces (JSF). Eles podem ser baixados do repositório central maven https://search.maven.org/ . Uma maneira mais lúcida de gerenciar dependências é usando um sistema de compilação como o maven. Para todos os nossos exemplos, usaríamos maven. Consulte o pom.xml para dependências.

jsf-api-1.2.jar
jsf-impl-2.2.8-04.jar

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="https://maven.apache.org/POM/4.0.0" xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="https://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.journaldev.jsf</groupId>
    <artifactId>JSF_HelloWorld</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>war</packaging>

    <name>JSF_HelloWorld</name>

    <properties>
        <endorsed.dir>${project.build.directory}/endorsed</endorsed.dir>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>
    
    <dependencies>
        <dependency>
            <groupId>javax</groupId>
            <artifactId>javaee-web-api</artifactId>
            <version>7.0</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>com.sun.faces</groupId>
            <artifactId>jsf-api</artifactId>
            <version>2.1.13</version>
        </dependency>
        <dependency>
            <groupId>com.sun.faces</groupId>
            <artifactId>jsf-impl</artifactId>
            <version>2.1.13</version>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.1</version>
                <configuration>
                    <source>1.7</source>
                    <target>1.7</target>
                    <compilerArguments>
                        <endorseddirs>${endorsed.dir}</endorseddirs>
                    </compilerArguments>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-war-plugin</artifactId>
                <version>2.3</version>
                <configuration>
                    <failOnMissingWebXml>false</failOnMissingWebXml>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-dependency-plugin</artifactId>
                <version>2.6</version>
                <executions>
                    <execution>
                        <phase>validate</phase>
                        <goals>
                            <goal>copy</goal>
                        </goals>
                        <configuration>
                            <outputDirectory>${endorsed.dir}</outputDirectory>
                            <silent>true</silent>
                            <artifactItems>
                                <artifactItem>
                                    <groupId>javax</groupId>
                                    <artifactId>javaee-endorsed-api</artifactId>
                                    <version>7.0</version>
                                    <type>jar</type>
                                </artifactItem>
                            </artifactItems>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

</project>

Criar um Bean gerenciado

Um bean gerenciado é uma classe java registrada no JSF que torna possível a interação entre a IU e a lógica de negócios. Crie um bean gerenciado denominado HelloWorld.javausando @ManagedBeananotação como:

package com.journaldev.jsf.helloworld;

import java.io.Serializable;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;


@ManagedBean(name="helloWorld")
@SessionScoped
public class HelloWorld implements Serializable{
    
    private static final long serialVersionUID = -6913972022251814607L;
	
    private String s1 = "Hello World!!";

    public String getS1() {
        System.out.println(s1);
        return s1;
    }

    public void setS1(String s1) {
        this.s1 = s1;
    }
  
}

@ManagedBean indica que a classe HelloWorld é um bean gerenciado. O @SessionScopedbean indica que o bean está vivo até que HttpSessionseja válido. Aqui, uma string s1 é declarada e inicializada com “Hello World” e os métodos getter e setter são definidos para recuperar o valor da string s1.

Podemos fornecer o nome do bean também como @ManagedBean(name="helloWorld"). Se nenhum nome for fornecido, ele é derivado de acordo com os padrões de nomenclatura java. A melhor prática é fornecer o nome do bean sempre.

Hello World em Java Server Faces (JSF)

Agora crie uma página JSF chamada helloWorld.xhtml que interage com o HelloWorldbean e recupera o valor por meio do método getter e imprime o mesmo na página de resposta.

helloWorld.xhtml

<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="https://www.w3.org/1999/xhtml"
      xmlns:h="https://java.sun.com/jsf/html">
<h:head>
<title>Hello World JSF Example</title>
</h:head>
<h:body>
       #{helloWorld.s1}
<br /><br />

</h:body>
</html>

Veja também: [+] 4 Dicas de Como Escolher Os Melhores Cursos de Programação.

Configuração o Deploy na sua aplicação Java Server Faces (JSF)

A parte final é configurar a classe JSF Controller para lidar com as solicitações do cliente. O servlet do controlador JSF é FacesServlet, a configuração final do web.xml é fornecida abaixo.

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.1" xmlns="https://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="https://xmlns.jcp.org/xml/ns/javaee https://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd">
<context-param>
<param-name>javax.faces.PROJECT_STAGE</param-name>
<param-value>Development</param-value>
</context-param>
<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>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.jsf</url-pattern>
</servlet-mapping>
<session-config>
<session-timeout>
            30
</session-timeout>
</session-config>
<welcome-file-list>
<welcome-file>faces/helloWorld.xhtml</welcome-file>
</welcome-file-list>
</web-app>

A estrutura final do projeto JSF Hello world agora será semelhante a abaixo no Eclipse.

No web.xml, especificamos a entrada do arquivo de configuração faces juntamente com o servlet de mapeamento para faces, tempo limite de sessão e o arquivo de boas-vindas que é carregado no início do aplicativo.

Assim que terminarmos com essas alterações, devemos executar o aplicativo que imprime a seguinte saída no navegador.

Isso é tudo para o tutorial JSF para iniciantes. Veremos os diferentes componentes da página JSF nos próximos posts. Se você tiver interesse em estudar mais sobre Java, confira a nossa lista completa de artigos sobre Java.


Deixe o seu comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *