• Nenhum resultado encontrado

JSF. Componentes. Face Bean. Navegação. JavaServer Faces. Validação. Ciclo JSF. Prof. Enzo Seraphim. Exemplo

N/A
N/A
Protected

Academic year: 2021

Share "JSF. Componentes. Face Bean. Navegação. JavaServer Faces. Validação. Ciclo JSF. Prof. Enzo Seraphim. Exemplo"

Copied!
71
0
0

Texto

(1)

JavaServer

Faces

Prof. Enzo Seraphim

Face Bean Componentes Navegação Validação Ciclo JSF Exemplo JSF

(2)

JSF (JavaServer Faces)

▼ É uma especificação Java e não um

produto proprietário

– Especificado pelo JCP 252

▼ Define um modelo de programação

▼ Orientado a componentes:

– Que gera HTML

– Componentes Reusáveis – Baseada em factories

– Árvore de componentes (Composite) – Eventos do lado do servidor

(3)

Objetivos

▼ Gerência de estados dos componentes; ▼ Tratamento de eventos;

▼ Validação;

▼ Conversão de dados;

▼ Mapeamento das navegações entre

páginas;

▼ Internacionalização, entre outros. ▼ Simplificar o desenvolvimento

(4)

Papéis em aplicação JSF

Autor de páginas: Criador das páginas

utilizando as bibliotecas de tags do JSF;

Desenvolvedor de aplicação: Criador

de conversores, validadores, tratadores de eventos e backing beans;

Autor de componentes: Criador de

componentes e renderizadores;

Arquiteto da aplicação: Configura toda

a aplicação; Define regras de navegação entre páginas; Configura objetos

(5)

Conjunto de páginas JSP (apresentação):

tags customizadas UI (user interface),

para representar objetos em uma página;

Conjunto de backing beans (JavaBeans):

objetos definem propriedades e métodos;

Conjunto de tags validadores,

conversores, ou tratadores de eventos;

Conjunto de navegação definidos para os

backing beans em arquivo de configuração

(6)

Exemplo Aplicação JSF

Validações, Conversores, Eventos

Navegação TrocaBean - campo1: String - campo2: String + gets e sets... + inverte(): String P ág in a JS F B ac k in g B ea n

(7)

<%@taglib prefix="h" uri="http://java.sun.com/jsf/html"%>  <%@taglib prefix="f" uri="http://java.sun.com/jsf/core"%> <f:view> <h:form> <html> <body>   <fieldset>     <legend>Troca Exemplo</legend>     <label>Campo1: <h:inputText         value="#{TrocaBean.campo1}" />     </label><br/>     <label>Campo2: <h:inputText         value="#{TrocaBean.campo2}" />    </label><br/>    <h:commandButton value="inverte"          action="#{TrocaBean.inverte}"  />   </fieldset> </body> </html> </h:form> </f:view> w el co m eJ S F. js p

(8)

<%@taglib prefix="h" uri="http://java.sun.com/jsf/html"%>  <%@taglib prefix="f" uri="http://java.sun.com/jsf/core"%> <h:outputText value="campo1:" />  <h:inputText id="campo1" value="#{TrocaBean.campo1}">    <f:validateLength maximum="15" minimum="6"/>  </h:inputText><br/> <h:outputText value="campo1:" />  <h:inputText id="campo2" value="#{TrocaBean.campo2}">    <f:validateLength maximum="15" minimum="6"/>  </h:inputText> <h:commandButton id="inverte"      action="#{TrocaBean.inverte}" value="inverte" /> ...

Validação

welcomeJSF.jsp

(9)

Exemplo Aplicação JSF

Validações, Conversores, Eventos

Navegação TrocaBean - campo1: String - campo2: String + gets e sets... + inverte(): String B ac k in g B ea n P ág in a JS F

(10)

@ManagedBean @RequestScoped

public class TrocaBean {

private String campo1;

private String campo2;

//get e set …

public String inverte() { String temp = campo1; campo1 = campo2; campo2 = temp; return "/welcomeJSF.jsp"; } } T ro ca B ea n .j av a

Exemplo de Bean

método chamado por botão ou link que direciona a navegação

para mesma página atributos com get e set

usados na caixa de texto da Página JSF

(11)

...

<servlet­mapping>  <servlet­name>Faces  Servlet</servlet­name>

 <url­pattern>/faces/*</url­pattern> </servlet­mapping> ... welcomeJSF.jsp componentes JSF faces/welcomeJSF.jsp Interpretada pelo Browser w eb .x m l Requisição feita para pagina gerada

Página gerada

Execução

=

(12)

JavaServer

Faces

Prof. Enzo Seraphim

Face Bean Componentes Navegação Validação Ciclo JSF Exemplo JSF

(13)

Core JavaServer Faces

▼ Contém tags JSF independentes da

apresentação, tais como conversores e validadores. <%@taglib prefix="f" uri="http://java.sun.com/jsf/core"%> f:view f:subview f:facet f:attribute f:param f:actionListener f:valueChangeListener f:setPropertyChangeListener f:converter f:convertDateTime f:convertNumber f:validator f:validateDoubleRange f:validateLength f:validateLongRange f:loadBundle f:selectitems f:selectitem f:verbatim

(14)

Core JavaServer Faces

<f:view>

– Cria uma view JSF.

– Container para todos os componentes usados na página

– Cada página só pode ter uma única view;

– Todos os componentes JavaServer Faces devem ser aninhados a este

– 'Qualquer componente que fique fora pode gerar um erro.

(15)

Core JavaServer Faces

subview→Cria uma subview de uma viewattribute → Define um atributo

(chave/valor) ao componente pai mais próximo

param → Permite definir parâmetros ao

componente

facet → Adiciona facet a um componenteactionListener → Adiciona um action

listener ao componente

setPropertyActionListener → Adiciona

action listener que define propriedade

valueChangeListener → Adiciona um

(16)

Core JavaServer Faces

phaseListener → Adiciona um ouvidor

de fases ao componente

converter → Adiciona um conversor

arbitrário ao componente

convertDateTime → Adiciona um

conversor de data e hora ao componente

convertNumber → Adiciona um

conversor de números ao componente

validator → Adiciona um validador ao

componente

validateDoubleRange → Faz validação

(17)

Core JavaServer Faces

validateLength → Faz a validação do

tamanho mínimo e máximo de caracteres do valor de um componente

validateLongRange → Faz a validação

de uma faixa de valores inteiros

loadBundle → Carrega um arquivo de

recursos e armazena as propriedades

selectItems → Define os ítens para um

componente select one ou select many

selectItem → Define um ítem para um

componente select one ou select many

verbatim → Transforma texto contendo

(18)

UIComponent + HTML

RenderKit Renderer

▼ Classes de componentes que geram como

saída tags HTML <%@taglib prefix="h" uri="http://java.sun.com/jsf/html"%> h:form h:inputText h:inputTextArea h:inputSecret h:inputHidden h:outputLabel h:outputLink h:outputFormat h:outputText h:commandButton h:commandLink h:message h:messages h:selectOneListbox h:selectOneMenu h:selectOneRadio h:selectBooleanCheckbox h:selectManyCheckbox h:selectManyListbox h:selectManyMenu h:panelGrid h:panelGroup h:dataTable h:column

(19)

Tags JSF HTML

h:form → Formulário HTML

h:inputText → Entrada de uma linha de

texto

h:inputTextArea → Entrada de várias

linhas de texto.

h:inputSecret → Entrada de Texto para

senha

h:inputHidden → Campos Escondido

h:outputLabel → Label para componente

(acessibilidade)

(20)

Tags JSF HTML

h:outputFormat → Igual ao outputText,

mas com formatação

h:outputText → Saida de Texto única.

h:commandButton → Botões formulário:

submit, reset, or pushbutton.

h:commandLink → Link que atua com o

pushbutton.

h:message → Mostra a mensagem mias

recente para o componente.

(21)

Tags JSF HTML

h:selectOneListbox → Lista de seleção

única.

h:selectOneMenu → Menu de seleção

única

h:selectOneRadio → Radio buttons.

h:selectBooleanCheckbox → Checkbox.h:selectManyCheckbox → Lista de

Checkboxes.

h:selectManyListbox → Lista de seleção

multiplas

h:selectManyMenu → Menu com

(22)

Tags JSF HTML

h:panelGrid → tabela HTMLh:panelGroup → Dois ou mais

componentes que são definidos como um

h:dataTable → Pode exibir objetos de

uma coleção ou de um vetor. Cada objeto representa uma linha na tabela e as

colunas correspondem variáveis de instância no objeto.

(23)

▼ Representa a tag form do HTML; ▼ Dentro do form, devem estar os componentes  para entrada de dados, que serão  posteriormente enviados

<h:form>

<h:form> </h:form> U I H T M L

<form id="j_id_id16" name="j_id_id16" method="post" action="/WebApplication1/faces/welcomeJSF.jsp"

enctype="application/x-www-form-urlencoded">

<input type="hidden" name="j_id_id16" value="j_id_id16" /> <input type="hidden" name="javax.faces.ViewState"

id="javax.faces.ViewState" value="-9163228735902783129: -7151430677457024184" autocomplete="off" />

(24)

<h:form>

<h:outputText value="digite aqui"/> <h:inputText value="#{bean.campo}"/> </h:form> U I H T M L <form ... digite aqui

<input type="text" name="j_id_id16:j_id_id20" /> ...</form>

<h:outputText>

<h:inputText>

▼ OutputText → Rótulo texto

(25)

h:commandButton

▼ Define um botão com ação e a

navegação.

<h:form>

<h:outputText value="digite aqui"/> <h:inputText value="#{bean.campo}"/> <h:commandButton value="Cadastrar" action="#{bean.acao}" /> </h:form> U I H T M

L ...<input type="submit" name="j_id_id16:j_id_id22" value="Cadastrar" />

(26)

Expressions Language

#{bean.atributo}#{bean.método}

▼ Utilizada para acessar os backing beans:

– bean: o nome do face bean;

– atributo: a propriedade do bean acessada pelos métodos set/get. – método: método do bean que não

(27)

▼ componente inputText:

– chamará o método getNome() quando a página for renderizada

– chamará o método setNome() quando a página for submetida;

▼ componente commandButton:

– chamará o método validar() quando a página for submetida

<h:form>

<h:outputText value="digite aqui"/> <h:inputText value="#{bean.campo}"/> <h:commandButton value="Cadastrar" action="#{bean.acao}" />

</h:form>

(28)

Outros Componentes

<h:inputSecret value="#{bean.campo}" />

(29)

h:outputLink + h:outputText

<h:outputLink

value="http://www.meusite.com">

<f:param name="user" value="ze" /> <f:param name="pwd" value="123" /> <h:outputText value="Login" />

</h:outputLink>

<a href="http://www.meusite.com?

(30)

▼ Representa uma caixa de seleção única

value → pode ser um atributo do bean

▼ f:selectItems permite manipular coleções

(list, set, map,array)

value → coleção

var → nome de variavel para itemValue

e itemLabel

ItemLabel → rótulo (visível na lista)ItemValue → valor (passado para

atributo)

<h:selectOneMenu,

Radio,ListBox>

(31)

public class Bean {

private String [] cores =

{"branco","prata","vermelho","azul"};

private String cor = "";

//gets e sets ... } C ar ro .j av a U I H T M L <h:selectOneMenu value="#{carroBean.cor}"> <f:selectItems value="#{carroBean.cores}"/> </h:selectOneMenu>

<select id="cor" name="cor" size="1"> <option value="branco">branco</option> <option value="prata">prata</option> <option value="vermelho">vermelho</option> < option value="azul">azul</option> </select>

Exemplo h:selectOneMenu

(32)

▼ Representa uma caixa de seleção única

value: pode ser um atributo do bean

▼ f:selectItems permite manipular coleções

(list, set, map,array)

– value → coleção

– var → nome de variavel para itemValue

e itemLabel

– ItemLabel → rótulo (visível na lista) – ItemValue → valor (passado para

atributo)

<h:selectManyCheckBox,

Menu,ListBox>

(33)

public class Bean {

private String [] cores =

{"branco","prata","vermelho","azul"}; private List<String> variasCores =

new ArrayList<String>(); //gets e sets ... } C ar ro .j av a

Exemplo h:selectOneMenu

U I H T M L <h:selectManyMenu value="#{carroBean.variasCores}"> <f:selectItems value="#{carroBean.cores}" </h:selectOneMenu> ...

<input name="cor" id="cor:0" value=";@7683b1" type="checkbox"/><label for="cor:0" class=""> branco</label>

<input name="cor" id="cor:1" value=";@7683b1" type="checkbox"/><label for="cor:1" class=""> prata</label> ...

(34)

Internacionalização

▼ Um recurso muito poderoso do JSF é a

internacionalização muito fácil de utilizar

▼ As mensagens ficam gravadas em

arquivo de recursos chamado de Resource Bundle;

– Arquivo de extensão .properties. – Pacote próprio na aplicação

– Exemplo de nomes de arquivos:

(35)

Arquivos .properties

informe=Informe seu Nome naoVazio=Nome não pode estar vazio. ok=OK ola=Olá ingles=English portugues=Português p t_ B R .p or p et ie s p t_ B R .p or p et ie s informe=Enter your name naoVazio=Name cannot be null. ok=OK ola=Hello ingles=English portugues=Português

(36)

<application>

    <resource­bundle>

       <base­name>mensagem.Mensagens</base­name>

       <var>msg</var>

    </resource­bundle>     <locale­config>

      <default­locale>pt_BR</default­locale>

      <supported­locale>en_US</supported­locale>

      <supported­locale>pt_BR</supported­locale>

    </locale­config> </application>

▼ Tag application: Configurações gerais da

aplicação;

▼ Tag resource-bundle: Configurações de

um resource bundle;

▼ Tag base-name: nome base arq.recurso. ▼ Tag var: variável visível nas páginas JSP.

ResourceBundle

fa ce s-co n fi g. xm l

(37)

<application>

    <resource­bundle>

       <base­name>mensagem.Mensagens</base­name>

       <var>msg</var>

    </resource­bundle>     <locale­config>

      <default­locale>pt_BR</default­locale>

      <supported­locale>en_US</supported­locale>

      <supported­locale>pt_BR</supported­locale>

    </locale­config> </application>

▼ Tag locale-config: configura os idiomas

que podem ser usados na aplicação;

▼ Tag default-locale: língua padrão da

aplicação;

▼ Tag supported-locale: indica os idiomas

suportados pela aplicação.

ResourceBundle

fa ce s-co n fi g. xm l

(38)

<%@taglib prefix="h" uri="http://java.sun.com/jsf/html"%>  <%@taglib prefix="f" uri="http://java.sun.com/jsf/core"%> <f:view> <html> <body> <h:form>   <h:outputLabel for="itNome" value="#{msg.informe}"/>   <h:inputText id="itNome" value="#{nomeBean.nome}"      required="true" requiredMessage="#{msg.naoVazio}"/>   <h:message for="itNome"/><br/>   <h:commandButton id="ok" action="mensagem"      value="#{msg.ok}" /> </h:form> </body> </html> </f:view> ... <h:outputText value="#{mensagens.ola},     #{nomeBean.nome}"/> ...

(39)

JavaServer

Faces

Prof. Enzo Seraphim

Face Bean Componentes Navegação Validação Ciclo JSF Exemplo JSF

(40)

O que é ?

Bean.java

Atributos acessados pela

Expressions Language da

página JSF

Métodos invocados pela

página JSF

(41)

@ManagedBean @RequestScoped

public class EquacaoQuadratica {

private float a;

private float b; private float b;

private float delta;

//get e set …

public String calcDelta() { delta = b*b – 4*a*c; return "/welcomeJSF.jsp"; } } B ea n .j av a

Exemplo

de Bean

método chamado por botão ou link que direciona a navegação

para mesma página atributos com get e set

usados na caixa de texto da Página JSF EquacaoQuadratica - a: float - b: float - c: float - delta: float + gets e sets... + calcDelta(): String Faces Annotations

(42)

Managed Bean

▼ Classes java que a principal

responsabilidade é intermediar a comunicação entre as páginas

(componentes do JSF) e nosso modelo: import javax.faces.bean.ManagedBean;

@ManagedBean

▼ Algumas responsabilidades são:

Escutar eventos, processa-los e delegar

(43)

Escopo Faces

▼ Um escopo dá um objeto num contexto

de ciclo de vida bem definido.

▼ Um objeto de escopo podem ser criados

automaticamente quando ela é

necessária e automaticamente destruídas quando o contexto no qual ele foi criado finalizar.

▼ Seu estado é automaticamente

compartilhada por todos os clientes que executam no mesmo contexto.

(44)

Escopo Faces

@RequestScoped → Estado do Bean

renovado em a cada interação do usuário com uma aplicação web (uma única

solicitação HTTP ao Bean). Instanciação do Bean para toda requisição HTTP

@SessionScoped → Estado do Bean

compartilhado em várias solicitação

HTTP A interação do usuário com uma aplicação web em várias solicitações HTTP.

(45)

Escopo Faces

@ApplicationScoped → Estado do Bean

compartilhado entre todas as interações dos usuários com uma aplicação web.

Uma única instanciação do Bean a partir da instanciação

@ViewScoped → Estado do Bean

compartilhado compartilhado enquanto não for requisitado a mesma página JSF. Uma única instanciação do Bean até que seja requisitada outra página.

(46)

JavaServer

Faces

Prof. Enzo Seraphim

Face Bean Componentes Navegação Validação Ciclo JSF Exemplo JSF

(47)

Navegação de Páginas

▼ A navegação de páginas em JSF é

baseado em regras de navegação:

Método do Managed Bean → não

contém parâmentros e que retorna String define direção da navegação

faces-config.xml → Navegação

condicionada ao retorno do método do bean

(48)

public class Troca {

private String campo1; private String campo2;

//gets e sets ...

public String inverte() { String temp = campo1; campo1 = campo2;

campo2 = temp; return "sucesso"; }

}

<!DOCTYPE faces-config PUBLIC

"-//Sun Microsystems, Inc.//DTD JavaServer Faces Config 1.1//EN" "http://java.sun.com/dtd/web-facesconfig_1_1.dtd">

<faces-config>

<managed-bean>

<managed-bean-name>TrocaBean</managed-bean-name> <managed-bean-class>Troca</managed-bean-class>

<managed-bean-scope>request</managed-bean-scope> </managed-bean> </faces-config> fa ce s-co n fi g. xm l C la ss e T ro ca .j av a

(49)

<faces-config>

<!-- ... -->

<navigation-rule>

<description></description>

<from-view-id>/troca.jsp</from-view-id> <navigation-case>

<description></description>

<from-outcome>sucesso</from-outcome> <to-view-id>/trocaSucesso.jsp</to-view-id> </navigation-case> </navigation-rule> <!-- ... --> </faces-config> fa ce s-co n fi g. xm l

faces-config.xml

Navegação condicionada ao retorno

(50)

JavaServer

Faces

Prof. Enzo Seraphim

Face Bean Componentes Navegação Validação Ciclo JSF Exemplo JSF

(51)

▼ Validação e Tratamento de Erros

– JSF torna fácil a inclusão de validações

como: “valor requerido”, “valor deve ser inteiro”

– Ao entrar com dados inválidos, faz-se

necessário mostrar os dados errados

– JSF trata da maior parte da tarefa tediosa

de converter dados e validar/tratar erros

▼ Conversão de Dados

– Usuários entram dados em formato String – Objetos de negócio necessitam de Strings,

inteiros, decimais e datas

– JSF faz a conversão automática dos dados

(52)

Validações

Validação Manual

– Métodos sets e gets

Validação Automática Implícita – Adiciona required na entrada

– Usar h:message para informar erros ▼ Validação automática explícita

– f:convertNumber, f:convertDateTme,

f:validateLength,f:validateDoubleRang e, f:validateLongRange

Validadores customizáveis

– Herdam Validador, sobrescrevem o

validate e são registrados no faces-config.xml

(53)

<h:form> Cor:

<h:inputText value="#{carroBean.cor}" required="true" requiredMessage=

"não pode ser vazio" id="cor"/> <h:message for="cor" /><br /> <h:commandButton id="conectar" action="teste.jsf" value="Conectar"/> </h:form>

Validação Implícita

<h:message for="campo1"/> – Impressão de mensagens

– for: O id do campo do qual deseja-se

mostrar uma mensagem, possivelmente de erro

(54)

Suporte validação de campos de entrada 

de forma declarativa

    <h:inputText … >       <f:validate... ... \>     </h:inputText>

Exemplos de validação:

    <f:validateLongRange maximum="30"     minimum="15"/>     <f:validateLength maximum="15"    minimum="6"/>     <f:validateDoubleRange minimum="20.00"   maximum="1000.00" />

Validação explícita

(55)

<%@taglib prefix="h" uri="http://java.sun.com/jsf/html"%>  <%@taglib prefix="f" uri="http://java.sun.com/jsf/core"%> <label>Campo1:   <h:inputText id="campo1" value="#{TrocaBean.campo1}">    <f:validateLength maximum="15" minimum="6"/>  </h:inputText> </label><br/> <label>Campo2:   <h:inputText id="campo2" value="#{TrocaBean.campo2}">    <f:validateLength maximum="15" minimum="6"/>  </h:inputText> </label><br/> <h:commandButton id="inverte"      action="#{TrocaBean.inverte}" value="inverte" /> ...

Exemplo de Validação

(56)

Converções

BigDecimalConverter BigIntegerConverter BooleanConverter ByteConverter CharacterConverter DateTimeConverter DoubleConverter FloatConverter IntegerConverter LongConverter NumberConverter ShortConverte <h:outputText value="#{bean.date}"> <f:convertDateTime dateStyle="full" /> </h:outputText> <h:outputText value="#{bean.soma}" >

(57)

JavaServer

Faces

Prof. Enzo Seraphim

Face Bean Componentes Navegação Validação Ciclo JSF Exemplo JSF

(58)

Interação cliente aplicação

web

(59)

Request/ Requisição

Retaurar

Visão Aplicar ValoresRequisitados ValidaçõesProcessar

Response/

Resposta RenderizarResposta AplicaçãoInvocar Valores BeanAtualizar

▼ Esta fase inicia o processamento da

requisição do ciclo de vida por meio da construção da árvore de componentes do JSF.

▼ Cada árvore de componentes possui um

identificador único durante todo o aplicativo.

▼ O JSF constrói a apresentação da página e

salva na instância FacesContext para processamento das fases seguintes.

(60)

Request/ Requisição

Retaurar

Visão Aplicar ValoresRequisitados ValidaçõesProcessar

Response/

Resposta RenderizarResposta AplicaçãoInvocar Valores BeanAtualizar

▼ Nesta fase, quaisquer novos valores

inseridos são extraídos e armazenados por seus apropriados componentes. Se o valor do componente não for uma String, então ele é convertido para o seu determinado tipo. Se a conversão falhar, ocorrem

diversas situações:

– Uma mensagem de erro é gerada e

associada com o componente;

– Uma mensagem de erro é armazenada no

FacesContext que depois será mostrada pelas fases posteriores

(61)

Request/ Requisição

Retaurar

Visão Aplicar ValoresRequisitados ValidaçõesProcessar

Response/

Resposta RenderizarResposta AplicaçãoInvocar Valores BeanAtualizar

▼ Nesta fase de processo de validações, os

componentes serão validados

▼ Um componente que necessita de validação

deve fornecer a implementação da lógica de validação.

▼ Por exemplo, na idade podemos determinar

um valor mínimo e máximo a ser digitado. O valor requisitado é um inteiro (verificado na fase anterior) e, como passou pela fase 2,

nessa fase pode ser barrado por estar além do determinado (com uma idade mínima ou máxima diferente da estipulada).

(62)

Request/ Requisição

Retaurar

Visão Aplicar ValoresRequisitados ValidaçõesProcessar

Response/

Resposta RenderizarResposta AplicaçãoInvocar Valores BeanAtualizar

▼ Nesta fase são atualizados os dados do

modelo do aplicativo.

▼ Durante esta fase a informação digitada é

armazenada no Managed Bean .

▼ Por ter passado pelo processo de validação,

temos garantias que o valor armazenado será garantido nessa fase. Entretanto, os

dados podem violar a lógica de negócios, ao qual a validação ocorre na fase seguinte.

(63)

Request/ Requisição

Retaurar

Visão Aplicar ValoresRequisitados ValidaçõesProcessar

Response/

Resposta RenderizarResposta AplicaçãoInvocar Valores BeanAtualizar

▼ Durante esta fase, a implementação JSF

manipula quaisquer eventos do aplicativo, tal como enviar um formulário ou ir a outra página através de um link.

▼ Estes eventos são ações que retornam

geralmente uma string que está associada a uma navegação no qual se encarrega de

(64)

Request/ Requisição

Retaurar

Visão Aplicar ValoresRequisitados ValidaçõesProcessar

Response/

Resposta RenderizarResposta AplicaçãoInvocar Valores BeanAtualizar

▼ Esta é a fase final, ao qual é renderizada a

página.

▼ Se este é um pedido inicial para esta página,

os componentes são acrescentados à apresentação neste momento.

▼ Se este é um postback, os componentes já

foram acrescidos à apresentação. Se há mensagens de conversão ou erros de

validação e a página contém um ou mais componentes <mensage /> ou um

componente <messages />, estes serão exibidos.

(65)

Conceitos importantes

View → Uma página JSP que é requisitada em JSF.Component Tree → Uma View em JSF é árvore de

componentes, tais como o form, as inputTexts, botões e links. Esses objetos são organizados em uma árvore, com base na hierarquia da página HTML.

View Root → Cada árvore de componentes está

enraizada a um objeto UIViewRoot.

View Identifier → Cada View de componente de árvore

tem um ID único. Quando utilizando JSPs e

mapeamento de prefixo, esta é a parte da URL entre o prefixo e a seqüência de consulta.

URL= http://localhost/myapp/faces/admin/usuario.jsf

(66)

Conceitos importantes

Identificador de Componente → Este é o valor

atribuído ao atributo id para a tag de um componente. O id do componente deve ser único no seu contêiner de nomeação. Caso contrário a exceção duplicate id é lançada.

Nomeação do contêiner → Um contêiner serve como

um espaço para os componentes.

Identificador de cliente → É identificador de um

componente no cliente que é composto por nomes de recipiente id e id do componente, delimitado por dois pontos.

(67)

Conceitos importantes

Faces Context → descreve o ambiente de execução da

requisição em andamento. Define ou recuperar a raiz da View atual afetando assim a View que será exibida para o usuário

Converter → Converte o valor String na entrada do

componente que apresentou o valor do atributo para o tipo de dados apropriado para o componente de valor presente.

Validator → Aplica-se a regras de validação o valor

convertido para um componente.

FacesMessage → Representa uma mensagem que

precisa ser exibido para o usuário. O FacesContext mantém uma fila de mensagem que contém as

(68)

JavaServer

Faces

Prof. Enzo Seraphim

Face Bean Componentes Navegação Validação Ciclo JSF Exemplo JSF

(69)

raiz web src test conf java classes .java web-inf páginas .jsp, .html

lib classes tags

web.xml

sun-web.xml

Bibliotecas

.jar Classes.class Arquivos.tag

Diretório Projeto Netbeans

(70)

br.edu.unifei.ecoe07.controle.dao br.edu.unifei.ecoe07.modelo FonteDados ClienteDao crud FilmeDao LocacaoDao crud crud Cliente -login:String -cpf:String -nome:String Locacao -id:int -locacao:Calendar -devolucao:Calendar Filme -codigo:int -nome:String * 1 br.edu.unifei.ecoe07.controle.faces ClienteBean :EntityManager :ClienteDao :Cliente :EntityManager :LocacaoDao/:Locacao :FilmeDao/:Filme :ClienteDao/:Cliente LocacaoBean FilmeBean :EntityManager :FilmeDao :Filme

(71)

JavaServer

Faces

Prof. Enzo Seraphim

Os logotipos, marcas comerciais e nomes de produtos citados nesta publicação tem apenas

o propósitos de

identificação e podem ser marcas registradas

de suas respectivas companhias.

Referências

Documentos relacionados

Projeto JSF (Java JavaServer Faces – especificação para o desenvolvimento na plataforma WEB utilizando a linguagem Java e componentes voltados para este ambiente), JPA (Java

public static void SetChineseUnderline ( byte ChineseUnderlineEn); Alcance: 0  ChineseUnderlineEn  2, 48  ChineseUnderlineEn  50 Descrição: Ativa

Os psicólogos ajudam diariamente muitas pessoas de todas as ida- des e com todos os tipos de problemas que buscam os conhecimentos da psicologia para ajudá-las a terem uma melhor

O processo de disseminação de conteúdo poluído foi avaliado, via simulação, medindo a fração de downloads de objetos não poluídos, considerando dois mecanismos de introdução

Para justificar este projeto, seguirei os seguintes passos: (1) gênero e masculinidades negras; (2) o significante “negro”; (3) estereótipos das masculinidades negras

Além da atuação com o paciente e família, a inserção do psicólogo também é de grande valia para toda a equipe multidisciplinar de saúde que atua no contexto, pois

[r]

Digite servers e selecione a opção da lista. Digite servers e selecione a opção