javaserver faces - ?· jsf (javaserver faces) É uma especificação java e não um produto...

Download JavaServer Faces - ?· JSF (JavaServer Faces) É uma especificação Java e não um produto proprietário…

Post on 13-Nov-2018

212 views

Category:

Documents

0 download

Embed Size (px)

TRANSCRIPT

  • JavaServerFaces

    Prof. Enzo Seraphim

    Face Bean

    Componentes

    Navegao

    Validao

    Ciclo JSF

    Exemplo

    JSF

  • JSF (JavaServer Faces) uma especificao Java e no um

    produto proprietrio Especificado pelo JCP 252

    Define um modelo de programao Orientado a componentes:

    Que gera HTML Componentes Reusveis Baseada em factories rvore de componentes (Composite) Eventos do lado do servidor

  • Objetivos Gerncia de estados dos componentes; Tratamento de eventos; Validao; Converso de dados; Mapeamento das navegaes entre

    pginas; Internacionalizao, entre outros. Simplificar o desenvolvimento Fcil de estender

  • Papis em aplicao JSF Autor de pginas: Criador das pginas

    utilizando as bibliotecas de tags do JSF; Desenvolvedor de aplicao: Criador

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

    Autor de componentes: Criador de componentes e renderizadores;

    Arquiteto da aplicao: Configura toda a aplicao; Define regras de navegao entre pginas; Configura objetos (conversores, validadores, etc);

  • Conjunto de pginas JSP (apresentao): tags customizadas UI (user interface), para representar objetos em uma pgina;

    Conjunto de backing beans (JavaBeans): objetos definem propriedades e mtodos;

    Conjunto de tags validadores, conversores, ou tratadores de eventos;

    Conjunto de navegao definidos para os backing beans em arquivo de configurao

    Aplicao web JSF

  • Exemplo Aplicao JSF

    Validaes, Conversores, Eventos

    Navegao

    TrocaBean- campo1: String- campo2: String

    + gets e sets...+ inverte(): String

    Pgi

    na J

    SFB

    acki

    ng B

    ean

  • TrocaExemploCampo1:
    Campo2:

    wel

    com

    eJSF

    .jsp


  • ...

    ValidaowelcomeJSF.jsp

  • Exemplo Aplicao JSF

    Validaes, Conversores, Eventos

    Navegao

    TrocaBean- campo1: String- campo2: String

    + gets e sets...+ inverte(): StringB

    acki

    ng B

    ean

    Pgi

    na J

    SF

  • @ManagedBean@RequestScopedpublic class TrocaBean { private String campo1; private String campo2;

    //get e set

    public String inverte() { String temp = campo1; campo1 = campo2; campo2 = temp; return "/welcomeJSF.jsp"; }}

    Troc

    aBea

    n.ja

    va

    Exemplo de Bean

    mtodo chamado porboto ou link que

    direciona a navegao para mesma pgina

    atributos com get e setusados na caixa de texto da Pgina JSF

  • ...

    FacesServlet/faces/*

    ...

    welcomeJSF.jsp

    componentesJSF

    faces/welcomeJSF.jsp

    Interpretadapelo Browser

    web

    .xm

    l

    Requisio feita para pagina gerada

    Pgina gerada

    Execuo

    =Pgina JSF com JSP

  • JavaServerFaces

    Prof. Enzo Seraphim

    Face Bean

    Componentes

    Navegao

    Validao

    Ciclo JSF

    Exemplo

    JSF

  • Core JavaServer Faces Contm tags JSF independentes da

    apresentao, tais como conversores e validadores.

    f:viewf:subviewf:facetf:attributef:paramf:actionListenerf:valueChangeListener

    f:setPropertyChangeListenerf:converterf:convertDateTimef:convertNumberf:validatorf:validateDoubleRangef:validateLength

    f:validateLongRangef:loadBundlef:selectitemsf:selectitemf:verbatim

  • Core JavaServer Faces

    Cria uma view JSF. Container para todos os componentes

    usados na pgina Cada pgina 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.

  • Core JavaServer Faces subviewCria uma subview de uma view attribute Define um atributo

    (chave/valor) ao componente pai mais prximo

    param Permite definir parmetros ao componente

    facet Adiciona facet a um componente actionListener Adiciona um action

    listener ao componente setPropertyActionListener Adiciona

    action listener que define propriedade valueChangeListener Adiciona um

    change Listerner de valor ao componente

  • Core JavaServer Faces phaseListener Adiciona um ouvidor

    de fases ao componente converter Adiciona um conversor

    arbitrrio ao componente convertDateTime Adiciona um

    conversor de data e hora ao componente convertNumber Adiciona um

    conversor de nmeros ao componente validator Adiciona um validador ao

    componente validateDoubleRange Faz validao

    de uma faixa de valores ao double

  • Core JavaServer Faces validateLength Faz a validao do

    tamanho mnimo e mximo de caracteres do valor de um componente

    validateLongRange Faz a validao 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 marcao em um componente

  • UIComponent + HTML RenderKit Renderer

    Classes de componentes que geram como sada tags HTML

    h:formh:inputTexth:inputTextAreah:inputSecreth:inputHiddenh:outputLabelh:outputLinkh:outputFormat

    h:outputTexth:commandButtonh:commandLinkh:messageh:messagesh:selectOneListboxh:selectOneMenuh:selectOneRadio

    h:selectBooleanCheckboxh:selectManyCheckboxh:selectManyListboxh:selectManyMenuh:panelGridh:panelGrouph:dataTableh:column

  • Tags JSF HTML h:form Formulrio HTML h:inputText Entrada de uma linha de

    texto h:inputTextArea Entrada de vrias

    linhas de texto. h:inputSecret Entrada de Texto para

    senha h:inputHidden Campos Escondido h:outputLabel Label para componente

    (acessibilidade) h:outputLink Link em HTML.

  • Tags JSF HTML h:outputFormat Igual ao outputText,

    mas com formatao h:outputText Saida de Texto nica. h:commandButton Botes formulrio:

    submit, reset, or pushbutton. h:commandLink Link que atua com o

    pushbutton. h:message Mostra a mensagem mias

    recente para o componente. h:messages Mostra todas mensagens

  • Tags JSF HTML h:selectOneListbox Lista de seleo

    nica. h:selectOneMenu Menu de seleo

    nica h:selectOneRadio Radio buttons. h:selectBooleanCheckbox Checkbox. h:selectManyCheckbox Lista de

    Checkboxes. h:selectManyListbox Lista de seleo

    multiplas h:selectManyMenu Menu com

    muiltiplas selees.

  • Tags JSF HTML h:panelGrid tabela HTML h:panelGroup Dois ou mais

    componentes que so definidos como um h:dataTable Pode exibir objetos de

    uma coleo ou de um vetor. Cada objeto representa uma linha na tabela e as colunas correspondem variveis de instncia no objeto.

    h:column Coluna em uma dataTable

  • RepresentaatagformdoHTML; Dentrodoform,devemestaroscomponentes

    paraentradadedados,queseroposteriormenteenviados

    UI

    HT

    ML

  • UI

    HT

    ML

  • h:commandButton Define um boto com ao e a

    navegao.

    UI

    HT

    ML

    ...

    ...

  • Expressions Language #{bean.atributo} #{bean.mtodo} Utilizada para acessar os backing beans:

    bean: o nome do face bean; atributo: a propriedade do bean

    acessada pelos mtodos set/get. mtodo: mtodo do bean que no

    recebe parmetro e retorna string

  • componente inputText: chamar o mtodo getNome() quando a

    pgina for renderizada chamar o mtodo setNome() quando a

    pgina for submetida; componente commandButton:

    chamar o mtodo validar() quando a pgina for submetida

    Exemplo EL

  • Outros Componentes

  • h:outputLink + h:outputText

    Login

  • Representa uma caixa de seleo nica value pode ser um atributo do bean

    f:selectItems permite manipular colees (list, set, map,array) value coleo var nome de variavel para itemValue

    e itemLabel ItemLabel rtulo (visvel na lista) ItemValue valor (passado para

    atributo)

  • public class Bean {

    private String [] cores = {"branco","prata","vermelho","azul"};

    private String cor = ""; //gets e sets ... }

    Car

    ro.ja

    vaU

    IH

    TM

    L

    branco prata vermelho< option value="azul">azul

    Exemplo h:selectOneMenu

  • Representa uma caixa de seleo nica value: pode ser um atributo do bean

    f:selectItems permite manipular colees (list, set, map,array) value coleo var nome de variavel para itemValue

    e itemLabel ItemLabel rtulo (visvel na lista) ItemValue valor (passado para

    atributo)

  • public class Bean { private String [] cores = {"branco","prata","vermelho","azul"};

    private List variasCores = new ArrayList(); //gets e sets ... }

    Car

    ro.ja

    va

    Exemplo h:selectOneMenu

    UI

    HT

    ML

  • Internacionalizao Um recurso muito poderoso do JSF a

    internacionalizao muito fcil de utilizar As mensagens ficam gravadas em

    arquivo de recursos chamado de Resource Bundle; Arquivo de extenso .properties. Pacote prprio na aplicao Exemplo de nomes de arquivos:

    Mensagens_pt_BR e Mensagens_en_US

  • Arquivos .properties

    informe=InformeseuNomenaoVazio=Nomenopodeestarvazio.ok=OKola=Olingles=Englishportugues=Portuguspt

    _BR

    .por

    petie

    spt

    _BR

    .por

    petie

    s informe=EnteryournamenaoVazio=Namecannotbenull.ok=OKola=Helloingles=Englishportugues=Portugus

  • mensagem.Mensagensmsgpt_BRen_USpt_BR

    Tag applicati