introdução a javaserver faces 2
Post on 14-Sep-2015
31 Views
Preview:
DESCRIPTION
TRANSCRIPT
-
Globalcode open4education 1
Mini-curso Gratuito
Introduo a JavaServer Faces 2
-
Globalcode open4education 2
Permitir que vocs tenham condies de decidir
pelo uso da tecnologia JavaServer Faces em
projetos Web com a linguagem Java
Objetivo
-
Globalcode open4education 3
Introduo
Arquitetura do JSF
Configurao
Principais componentes JSF
Ferramentas
Referncias
Perguntas e Respostas
Apresentao da Agenda
-
Globalcode open4education 4
Introduo
Arquitetura do JSF
Configurao
Principais componentes JSF
Ferramentas
Referncias
Perguntas e Respostas
Agenda
-
Globalcode open4education 5
Tecnologias de Apresentao
Contedo Esttico HTTP
HTML + Javascript + CSS + DOM
Contedo Dinmico CGI
Servlets
JSP
Classical Custom Tags
Tag Files e Simple Tags
Apache Struts
Web 2.0
Histrico
-
Globalcode open4education 6
Motivao
MVC tornou-se um padro de mercado (inmeros frameworks);
As interfaces grficas exigidas so muito complexas para serem desenvolvidas somente com HTML exigindo muito
JavaScript;
Muitos componentes de UI sendo desenvolvidos com Custom Tags ou JavaScript sem padronizao;
Baixa produtividade no desenvolvimento de aplicaes Web.
Web Apps sofisticadas - estado persistente entre requests
Por qu JSF?
-
Globalcode open4education 7
O que JavaServer Faces (JSF)?
Paradigma de programao visual de User-interfaces baseado em componentes aplicado Web
O framework Java padro para user interfaces em Web applications
UM framework que permite a criao de aplicaes Web com semntica de Swing implementando MVC;
Uma especificao Java EE com mltiplas implementaes (Mojarra / MyFaces)
O que JSF?
-
Globalcode open4education 8
Java EE Web Container Java EE EJB
Container
Controller
Model
View
Servlet
JavaBeans
Java
Server
Pages
Custom
Tag
EJB
JavaServer Faces
JSF e Java EE
Introduo
-
Globalcode open4education 9
Benefcios com o uso
Toolability = Ferramentabilidade (IDEs WYSIWYG);
Suporte a JSF na maioria dos IDEs;
Portabilidade = Todo Web Container compatvel com a especificao Java EE (5.0 ou superior) implementa JSF;
Aumento da produtividade de aplicaes Java EE;
Suporte internacionalizao;
Gerenciamento de estado entre mltiplas requisies;
Introduo
-
Globalcode open4education 10
Benefcios com o uso
Suporte a um modelo de eventos;
Componentes de UI de terceiros compatveis com JSF;
Mecanismo padro de converso e validao de dados;
Alta reusabilidade de componentes de tela e validadores;
Flexibilidade com processo de renderizao de componentes;
Fcil de aprender;
Alta adoo no mercado.
Introduo
-
Globalcode open4education 11
Implementao Oracle de Java EE
Servlets JSP EJB Custom Tags JSF
Java EE EJB
Container Java EE Web Container
Glassfish - Oracle
Introduo
-
Globalcode open4education 12
Implementao Red Hat de Java EE
Servlets JSP EJB Custom Tags JSF
Java EE EJB
Container Java EE Web Container
WildFly Red Hat
Introduo
-
Globalcode open4education 13
Introduo
Arquitetura do JSF
Configurao
Principais componentes JSF
Ferramentas
Referncias
Perguntas e Respostas
Agenda
-
Globalcode open4education 14
Arquitetura Client-Server baseada em HTTP;
Dificuldade em prover o mesmo dinamismo de uma aplicao desktop;
Todo o processamento Java acontece no servidor;
Arquitetura Web
-
Globalcode open4education 15
Listener
- Validao
- Converso de dados
- Integrao com a camada
Model
- Lgica de negcios, etc
Java
Chamada a mtodos
GUI e Listener
so processados pela
mesma mquina
Arquitetura Swing
-
Globalcode open4education 16
Java EE Web Container
Java Servlet
- Validao
- Converso de dados
- Integrao com a camada
Model
- Lgica de negcios, etc
Cliente Browser: HTML + JavaScript
HTTP
REQUEST / RESPONSE
Arquitetura Web
-
Globalcode open4education 17
Geralmente cd. para processar cada request envolve: Checar e carregar estado deixado por requests anteriores;
Validar e converter dados recebidos para tipos Java server-side (e gerar mensagens de erro se validao/converso falha);
Atualizar objetos server-side com os novos dados;
Invocar cdigo server-side que realize tarefas como acessar BD;
Preparar estado que precise estar disponvel em prximos requests;
Gerar um response de volta ao cliente (images, scripts, e CSS).
Ciclo vicioso de uma requisio
-
Globalcode open4education 18
1.Restore View
2.Apply Request Values
3.Process Validators
4.Update Model Values
5. Invoke Application
6.Render Response
Criao da rvore de componentes de UI.
Se a pgina j foi visualizada na mesma
session os dados so
recuperados.
Ciclo de vida da requisio JSF
-
Globalcode open4education 19
1.Restore View
2.Apply Request Values
3.Process Validators
4.Update Model Values
5. Invoke Application
6.Render Response
Atualiza rvore componentes de UI
com valores da
request.
Dispara quaisquer eventos gerados pela
atualizao
Ciclo de vida da requisio JSF
-
Globalcode open4education 20
1.Restore View
2.Apply Request Values
3.Process Validators
4.Update Model Values
5. Invoke Application
6.Render Response
Executa todas converses de dados +
validaes associadas
aos componentes de UI
Ciclo de vida da requisio JSF
-
Globalcode open4education 21
1.Restore View
2.Apply Request Values
3.Process Validators
4.Update Model Values
5. Invoke Application
6.Render Response
Cada componente de UI atualiza o seu
backing model
Ciclo de vida da requisio JSF
-
Globalcode open4education 22
1.Restore View
2.Apply Request Values
3.Process Validators
4.Update Model Values
5. Invoke Application
6.Render Response
Execuo do ActionListener padro,
geralmente com
execuo de
componentes de
negcio
Ciclo de vida da requisio JSF
-
Globalcode open4education 23
1.Restore View
2.Apply Request Values
3.Process Validators
4.Update Model Values
5. Invoke Application
6.Render Response
Gerao da Response com a rvore de
componentes de UI
Ciclo de vida da requisio JSF
-
Globalcode open4education 24
Principais componentes:
TagLibraries: JSF Core / HTML - cujas tags representam componentes de tela fundamentais.
Managed Beans: classes Java que respondem por aes e dados de telas JSF;
Expression Language: linguagem utilizada para declarar o vnculo entre telas JSF e managed beans;
FacesController: Servlet provido pelo JSF que representa o ncleo administrativo do JSF;
faces-config.xml: configuraes
Arquitetura JSF
-
Globalcode open4education 25
Para criar um aplicativo Web com JSF devemos:
1) Criar a pgina JSF utilizando suas custom tags;
Estrutura da tela e os componentes grficos
2) Criar uma classe JavaBean;
Receber os dados da tela e responder por eventos / aes
3) Configurar o FacesController no web.xml;
4) Criar um faces-config.xml e declarar o JavaBean;
possvel declarar com @ManagedBean no JSF 2
5) Configurar as bibliotecas (caso no haja suporte nativo
Java EE);
Arquitetura JSF
-
Globalcode open4education 26
Introduo
Arquitetura do JSF
Configurao
Principais componentes JSF
Ferramentas
Referncias
Perguntas e Respostas
Agenda
-
Globalcode open4education 27
JARs necessrios v1.x:
jsf-api.jar jsf-ri.jar jstl.jar standard.jar commons-beansutils.jar commons-digester.jar commons-collections.jar commons-logging.jar
Configurao
JARs necessrios v2.0:
jsf-api.jar jsf-impl.jar
JSF 2
-
Globalcode open4education 28
Deployment Descriptor: web.xml Fazer o mapeamento do FacesController Associao do controlador pode ser feita por extenso
ou por diretrio, ex. /faces/*
Configurao
Faces Servlet
javax.faces.webapp.FacesServlet
1
Faces Servlet
*.jsf
-
Globalcode open4education 29
faces-config.xml
Neste arquivo so feitas todas as configuraes da aplicao
JSF, como por exemplo:
Regras de Navegao Managed Beans Validators / Converters i18n
Configurao
-
Globalcode open4education 30
Introduo
Arquitetura do JSF
Configurao
Principais componentes JSF
Ferramentas
Referncias
Perguntas e Respostas
Agenda
-
Globalcode open4education 31
Pgina JSF
Tags: JSF HTML
Tags: JSF Core
Request
Managed
Bean
Session
Managed
Bean
Application
Managed
Bean
Expression Language: EL
Links, formulrios, imagens,
combo-box, tabelas, etc
Atravs destas tags
adicionamos validao,
converso de dados, listeners
Dados para popular as tabelas,
combo-box, textos.
Criao de pginas JSF
...
-
Globalcode open4education 32
Bibliotecas de Tags Managed Beans Componentes de User-interface (UI) Navegao Validadores Conversores Eventos e Listeners Facelets Ajax
Principais Componentes JSF
-
Globalcode open4education 33
Pginas JSF geralmente utilizam duas bibliotecas de Custom Tags do JSF:
JSF Html: renderizao de componentes de UI HTML JSF Core: integrao dos componentes de UI com
validadores, conversores
JSF Facelets: composio de telas JSF Composite: criao de componentes
customizados
Bibliotecas de Tags
-
Globalcode open4education 34
JSP no a nica forma de construir interfaces JSF;
A integrao feita atravs de TagLibs;
As TagLibs ligam os componentes server-side aos client-side (tipicamente HTML)
Integrao JSF e JSP
-
Globalcode open4education 35
Configuraes necessrias com JSP:
Integrao JSF e JSP
Configuraes necessrias com XHTML:
-
Globalcode open4education 36
Core Tag Library: gerenciamento de listeners, configurao de componentes, validao, entre outros;
HTML Tag Library: Definem o renderizador do componente de UI, utilizam EL para integrao com os
Managed Beans;
Existe uma tag para cada combinao entre renderizador e componente;
Por exemplo, um UIInput pode ser renderizado em forma
de inputText ou de inputSecret;
Integrao JSF e JSP
-
Globalcode open4education 37
Integrao JSF e JSP
Pgina JSF similar a um formulrio HTML. Porm:
Todas tags JSF esto contidas em uma tag (s .JSP)
Ao invs de usar um HTML, componentes devem ser includos em uma tag
Ao invs de usar as tags de input HTML, utiliza-se , e
Use, portanto:
ao invs de
ao invs de
-
Globalcode open4education 38
Exemplo Tags JSF
...
-
Globalcode open4education 39
Bibliotecas de Tags Managed Beans Componentes de User-interface (UI) Navegao Validadores Conversores Eventos e Listeners Facelets Ajax
Principais componentes JSF
-
Globalcode open4education 40
Um Managed Bean um JavaBean gerenciado pelo
framework JSF, ou seja, ele instanciado, e colocado no
escopo de acordo com as configuraes encontradas no
faces-config.xml ou por annotations (v2.0).
Um ManagedBean tambm chamado de backing bean,
pois contm os dados e os mtodos que sero executados
quando algum dos componentes de UI da pgina JSF tiver
que executar uma ao.
Managed Beans
-
Globalcode open4education 41
Chamamos de binding o vnculo entre um
componente de UI da pgina JSF e o seu backing
model / managed bean.
Managed Beans
-
Globalcode open4education 42
Model Sistema Legado
Managed Beans
-
Globalcode open4education 43
Utilizamos Taglibs e EL (Expression Language) para associar (fazer o binding) de um componente de UI com
um ManagedBean;
A String clienteBean est associada a
classe ClienteBean no faces-
config.xml (ou anotao).
Managed Beans
-
Globalcode open4education 44
Declarao de um ManagedBean no faces-config.xml:
Managed Beans
clienteBean
ClienteBean
session
JSF 2:
@ManagedBean(name=clienteBean") @SessionScoped
public class ClienteBean { ... }
-
Globalcode open4education 45
Pg
ina J
SF
fa
ces-c
on
fig
.xm
l
Ma
na
ged
Bean
Managed Beans em JSF 1.x
-
Globalcode open4education 46
Pg
ina J
SF
Ma
nag
ed
Be
an
@ManagedBean(name="olaMundoMB")
@RequestScoped
public class OlaMundoMB {
private String email;
public void metodo() {}
public String getEmail() {
return this.email;
}
public void setEmail(String email) {
this.email = email;
}
}
fac
es-c
on
fig
.xm
l Managed Beans em JSF 2.0
-
Globalcode open4education 47
Bibliotecas de Tags Managed Beans Componentes de User-interface (UI) Navegao Validadores Conversores Eventos e Listeners Facelets Ajax
Principais componentes JSF
-
Globalcode open4education 48
Tecnicamente:
Todos os componentes de UI so subclasses da classe
abstrata UIComponent;
A classe UIComponentBase j implementa os mtodos necessrios de UIComponent podendo ser estendida
diretamente;
Componentes de User-Interface
-
Globalcode open4education 49
Custom Tag renderiza um UICommand
em forma de boto
ou hyperlink
Componentes de User-Interface
HTML Render Kit
-
Globalcode open4education 50
Voc cria o componente
do zero
Indicado para construo de
componentes compostos
Utilizado para customizao
de componentes
Componentes de User-Interface
-
Globalcode open4education 51
Principais Componentes de UI
e Representa uma tela JSF e demarca a rea onde utilizamos
componentes JSF. Uma pgina pode conter apenas uma view.
O form essencial para submisso dos dados
Representa um fragmento de pgina. Utilizado com sistema de
pginas compostas para identificar os componentes includos na pgina como uma sub-view.
Utilizado para criar tabelas, seu funcionamento simples:
devemos indicar o nmero de colunas e adicionar componentes na ordem certa.
Caixa de entrada de texto.
-
Globalcode open4education 52
Principais Componentes de UI
Caixa de texto de mltiplas linhas
Normalmente usado para senhas
Para passagem de dados de aplicativo, pois no renderiza nada
visual.
O texto de ttulo de um outro componente
Texto simples
Apresentar imagens na pgina
-
Globalcode open4education 53
Principais Componentes de UI
Tag utilizada para componentes com validadores representa uma mensagem relacionada a um componente da tela.
Apresenta todas as mensagens de erro.
Representa um hyperlink HTML convencional.
Para chamar mtodos / aes em managed beans com um link HTML
Tambm chama mtodos em managed beans, mas representado por um boto HTML.
-
Globalcode open4education 54
Principais Componentes de UI
Uma lista de seleo de simples escolha.
Um combobox
Radio buttons para seleo de simples, de um elemento
Representa um checkbox que ser armazenado um boolean
-
Globalcode open4education 55
Principais Componentes de UI
-
Globalcode open4education 56
Principais Componentes de UI
public String getItemSelecionado() {
return itemSelecionado;
}
public void setItemSelecionado(String itemSelecionado) {
this.itemSelecionado = itemSelecionado;
}
public ArrayList getItemsLista() {
ArrayList r =new ArrayList();
r.add(new Estado("SP","So Paulo"));
return r;
}
-
Globalcode open4education 57
Mensagens
Para gerar uma mensagem genrica que ser apresentada com a tag na sua tela, devemos usar:
FacesMessage facesMsg =
new FacesMessage(FacesMessage.SEVERITY_INFO,
"resumo", "mensagem detalhada");
FacesContext fc = FacesContext.getCurrentInstance();
fc.addMessage(null, facesMsg);
-
Globalcode open4education 58
Tabela de Dados
Para trabalhar com tabelas de dados que apresentam colees de objetos utilizamos o componente :
ID
Descricao
-
Globalcode open4education 59
Tabela de Dados
O cdigo do managed bean deve apenas devolver a collection para a tabela:
private List categorias;
public List getCategorias() {
categorias = CategoriaDAO().getInstance().getAll();
return categorias;
}
public void setCategorias(List cat){
this.categorias = cat;
}
-
Globalcode open4education 60
Tabela de Dados
O componente permite operarmos em uma das linhas da tabela, por exemplo:
ID
Descricao
Comandos
-
Globalcode open4education 61
Tabela de Dados
No managed bean executamos a ao desejada:
Esta capacidade se deve ao fato de termos colocado o comando / ao na linha da tabela em questo!
public void excluir(Categoria categoria) {
CategoriaDAO().getInstance().remove(categoria);
}
-
Globalcode open4education 62
Bibliotecas de Tags Managed Beans Componentes de User-interface (UI) Navegao Validadores Conversores Eventos e Listeners Facelets Ajax
Principais componentes JSF
-
Globalcode open4education 63
O fluxo de navegao do usurio entre telas/mtodos do managed bean configurado no faces-config.xml
Vamos imaginar o seguinte menu para nosso sistema
incluir / listar so
nomes de
navegaes
configuradas no
faces-config.xml
Navegao com JSF 1.x
-
Globalcode open4education 64
Supondo que o arquivo de menu chame menu.xhtml, a seguinte configurao deve ser feita no faces-config.xml
/menu.xhtml
incluir
/incluir.xhtml
listar
/listar.xhtml
Quando a regra de
navegao for
chamada a partir
do menu.xhtml
Se a String for
incluir
Exiba como
resposta a pgina
incluir.xhtml
Navegao com JSF 1.x
-
Globalcode open4education 65
A navegao como foi exibida anteriormente com a String direto dentro da tag HTML chamada de navegao
esttica
Tambm podemos utilizar a navegao dinmica, ou seja acionar a navegao atravs de um mtodo do managed
bean
Mtodos de ao em managed beans podem retonar void ou String
Navegao com JSF 1.x
-
Globalcode open4education 66
Para direcionar o usurio para uma navegao em um managed bean, basta retornar como String o nome da
navegao configurada no faces-config.xml
public String salvar(){
String retorno = "listar";
try {
// instrues
}
catch(Exception e) {
retorno = "erro";
}
return retorno;
}
Navegao com JSF 1.x
-
Globalcode open4education 67
Para direcionar o usurio para uma navegao, basta retornar como String o nome da pgina para a qual se deseja navegar, sem a
extenso.
Esse mecanismo de navegao denominado navegao implcita e vale tanto para navegao dinmica quanto esttica.
Para forar um redirecionamento para a pgina de destino basta acrescentar um parmetro ?faces-redirect=true
public String salvar(){
String retorno = "listar";
try {
// instrues
}
catch(Exception e) {
retorno = "erro?faces-redirect=true"; //redirecionamento
}
return retorno;
}
Navegao com JSF 2.x
-
Globalcode open4education 68
Hello World JSF usando componentes bsicos
Demonstrao
-
Globalcode open4education 69
Bibliotecas de Tags Managed Beans Componentes de User-interface (UI) Navegao Validadores Conversores Eventos e Listeners Facelets Ajax
Principais componentes JSF
-
Globalcode open4education 70
Todos os componentes de UI derivados de UIInput podem ser validados;
Os dados so validados aps a converso;
Uma validao simples em componentes de entrada de dados o parmetro required="true".
Validadores
-
Globalcode open4education 71
A validao pode ser feita das seguintes formas:
Delegar a validao para um mtodo de um JavaBean que estiver no escopo;
Utilizar um Standard Validator (facilmente via tags);
Criar um Validator que implemente a interface javax.faces.validator.Validator
Validadores
-
Globalcode open4education 72
Uma tag de validao pode ser aninhada em campos de entrada
Para visualizar os erros de validao e/ou converso, devemos utilizar ou
possvel customizar as mensagens de erro padro criando um arquivo properties e configurando-o no faces-config.xml
Validadores
-
Globalcode open4education 73
Todas as implementaes de JSF devem ter os
seguintes validadores (standard validators):
f:validateDoubleRange (DoubleRangeValidator)
f:validateLength (LengthValidator)
f:validateLongRange (LongRangeValidator)
f:validateRegex (RegularExpression)
f:validateRequired (Required)
f:validateBean (Bean Validation)
Validadores
JSF 2
-
Globalcode open4education 74
Bibliotecas de Tags Managed Beans Componentes de User-interface (UI) Navegao Validadores Conversores Eventos e Listeners Facelets Ajax
Principais componentes JSF
-
Globalcode open4education 75
A representao de dados universal da Web String:
"1/1/2007" = java.util.Date
"20.05" = double
"true" = boolean
Sem o uso de um framework devemos converter os dados manualmente usando parsers do Java SE (NumberFormat,
DateFormat...)
Converso / Formatao
-
Globalcode open4education 76
A converso de dados pode ser implcita ou explcita
Para tipos primitivos e wrapper classes: implcita!!!
Para outros tipos: explcita
O JSF dispe de uma poro de conversores:
Nmeros: BigInteger, Double, Float, Long, double, int etc.
Booleanos
Datas
Moedas
Caracteres
Converso / Formatao
-
Globalcode open4education 77
Trs tags foram disponibilizadas para converso e formatao de dados: : especializada em datas
: diversas formas de converter nmeros
: para associar o dado a um conversor especfico / customizado
Converso / Formatao
-
Globalcode open4education 78
Os erros de converso so colocados em mensagens, importante o uso de / ;
Podemos desenvolver nosso prprio conversor criando uma classe que implementa a interface:
javax.faces.convert.Converter
Esta interface define dois mtodos: public Object getAsObject(FacesContext ctx,
UIComponent c, String s)
public String getAsString(FacesContext ctx,
UIComponent c, Object o)
Converso / Formatao
-
Globalcode open4education 79
Alm dos conversores, todas as tags JSF disponibilizam o parmetro rendered;
Com EL, podemos configurar o rendered para retornar um booleano que indicar se a tag deve ou no ser renderizada:
Converso / Formatao
Status
-> Mais sobre EL apostila AW2, captulo 12
-
Globalcode open4education 80
Bibliotecas de Tags Managed Beans Componentes de User-interface (UI) Navegao Validadores Conversores Eventos e Listeners Facelets Ajax
Principais componentes JSF
-
Globalcode open4education 81
Modelo de eventos muito parecido com AWT e Swing
Os Eventos so responsveis pela propagao das aes sobre a interface com o usurio;
Ex: preenchimento de formulrio, ao via link/boto
Cada componente de UI pode disparar quantos eventos forem necessrios;
Dois tipos de eventos: Eventos de mudana de valor; Eventos de ao;
Eventos
-
Globalcode open4education 82
O principal meio de comunicao entre uma pgina JSF e um managed bean so comandos vinculados a mtodos:
P
gin
a
JS
F
Man
ag
ed
Be
an
Eventos
-
Globalcode open4education 83
Uma outra forma de uma UI se comunicar com managed bean atravs de eventos
Um comando dispara um mtodo no managed bean quando o usurio clica no boto ou link
Um evento acionado no managed bean quando algo acontece em um componente da tela
Um evento JSF semelhante a um evento Swing, porm o listener se encontra em um servidor
Eventos
-
Globalcode open4education 84
Exemplo de evento tipo ValueChange:
public void atualizaUI(ValueChangeEvent event) {
int valor = Integer.parseInt(event.getNewValue().toString());
if (valor == 1) { //regra de negcios
} else if (valor == 2) {//regra de negcios
} else if (valor == 3) {//regra de negcios
}
}
Eventos
-
Globalcode open4education 85
Exemplo de evento do tipo ActionEvent:
public void login(javax.faces.event.ActionEvent event) {
// regra de negcios
}
Eventos
-
Globalcode open4education 86
Bibliotecas de Tags Managed Beans Componentes de User-interface (UI) Validadores Conversores Eventos e Listeners Facelets Ajax
Principais componentes JSF
-
Globalcode open4education 87
Bibliotecas de Tags Managed Beans Componentes de User-interface (UI) Validadores Conversores Eventos e Listeners Facelets Ajax
Principais componentes JSF
-
Globalcode open4education 88
Framework de templates de pginas Linguagem padro para descrever telas no JSF 2
Atua na camada view facilitando o reuso (herana) de pginas e fragmentos
v2 no requer mais configurao (faces-config.xml)
Vantagens do Facelets: Facilita o entendimento visual Componentiza mais suas pginas Facilita mudanas Padro a partir do Java EE 6 / JSF 2.0
Facelets
-
Globalcode open4education 89
SOMENTE para uso de Facelets no JSF 1.x
Adicionar no WEB-INF/lib o jar jsf-facelets.jar;
Adicionar a seguinte configurao no web.xml:
Adicionar a seguinte configurao no faces-config.xml:
Configurando Facelets no JSF 1.x
com.sun.facelets.FaceletViewHandler
javax.faces.DEFAULT_SUFFIX
.xhtml
-
Globalcode open4education 90
Vamos trabalhar com dois tipos diferentes de pginas:
Pgina template: no so visualizadas diretamente pelo usurio Servem apenas para serem "herdadas". Nas pginas template usamos a tag para definir reas.
Pgina client: so pginas efetivamente visualizadas
Usamos a tag para indicar o template e para preencher as rea pr-definidas no template em questo.
Usando Facelets
-
Globalcode open4education 91
Devemos fazer uma referncia ao namespace das tags:
Criar template as principais tags / parmetros so: reas de contedo
substituvel
Criar tela cliente as principais tags / parmetros so: indica
que a pgina utiliza o arquivo.xhtml como template
redefine o contedo de cada rea substituvel do template.
faz a incluso de fragmentos.
Usando Facelets
-
Globalcode open4education 92
Exemplo de definio de um template:
Area de menu padrao:
Area de dados padrao:
template1.xhtml
Usando Facelets
-
Globalcode open4education 93
Exemplo de uso de um template:
Usando Facelets
...
PaginaComMenu.xhtml
-
Globalcode open4education 94
Outro exemplo com o uso de template:
Usando Facelets
CategoriaForm.xhtml
-
Globalcode open4education 95
Bibliotecas de Tags Managed Beans Componentes de User-interface (UI) Validadores Conversores Eventos e Listeners Facelets Ajax
Principais componentes JSF
-
Globalcode open4education 96
Suporte nativo a AJAX
JSF 1.x
No existem componentes nativos com suporte a AJAX
Suporte a AJAX implementado atravs de bibliotecas de terceiros como AJAX4JSF
JSF 2.0
Adicionado suporte nativo a AJAX atravs do componente
O componente adicionado ao corpo do elemento que deve suportar requisies AJAX ao servidor
-
Globalcode open4education 97
Diviso do ciclo de vida de JSF
Fonte: especificao JSR-314
-
Globalcode open4education 98
Suporte nativo a AJAX
Atributos do tag event: evento que ir gerar a requisio AJAX execute: lista de ids de componentes que sero processados na
poro execute do ciclo de vida do JSF. render: lista de ids de componentes que sero processados na poro
render do ciclo de vida do JSF. listener: elemento opcional que representa um mtodo a ser executado
em um ManagedBean quando a requisio AJAX processada. O mtodo deve receber um AjaxBehaviorEvent como parmetro e pode lanar AbortProcessingException.
Alm da lista de ids separados por espao, tambm aceita os seguintes valores padro
@this: valor default, que simboliza o prprio componente @form @all @none
-
Globalcode open4education 99
Suporte nativo a AJAX
Trecho de pgina com uso de
-
Globalcode open4education 100
Suporte nativo a AJAX
Managed Bean vinculado ao trecho de pgina apresentado
@ManagedBean(name="clienteMB")
@RequestScoped
public class ClienteMB {
private Cliente cliente;
private String mensagem;
//getters e setters omitidos
public void tratadorAjax(AjaxBehaviorEvent e) {
mensagem = "executando tratamento Ajax";
}
}
-
Globalcode open4education 101
Introduo
Arquitetura JSF
Configurao
Principais componentes JSF
Ferramentas
Referncias
Perguntas e Respostas
Agenda
-
Globalcode open4education 102
Ferramentas
Gratuitos
Eclipse 6 - Helios (com JBoss Tools 3 timo suporte a Facelets) NetBeans 7
Oracle JDeveloper 11
Red Hat Developer Studio
Pagos
MyEclipse Enterprise Workbench 9.x
JetBrains IntelliJ IDEA 10.x
-
Globalcode open4education 103
Introduo
Arquitetura JSF
Configurao
Principais componentes JSF
Ferramentas
Referncias
Perguntas e Respostas
Agenda
-
Globalcode open4education 104
Mais informaes
Sites http://docs.oracle.com/javaee/7/tutorial/jsf-intro.htm http://weblogs.java.net/blog/edburns/ http://www.jsfcentral.com/
Java Specification Requests JSF 1.0 e 1.1: http://www.jcp.org/en/jsr/detail?id=127 JSF 1.2: http://www.jcp.org/en/jsr/detail?id=252 JSF 2.0 e 2.1: http://www.jcp.org/en/jsr/detail?id=314 JSF 2.2: http://www.jcp.org/en/jsr/detail?id=344
-
Globalcode open4education 105
Livros
JSF The Complete Reference Ed Burns
Core JavaServer Faces David Geary
JSF in Action Kitto Mann
Mastering JavaServer Faces Bill Dudney e outros
-
Globalcode open4education 106
Introduo
Arquitetura JSF
Configurao
Principais componentes JSF
Ferramentas
Referncias
Perguntas e Respostas
Agenda
-
Globalcode open4education 107
Perguntas e Respostas
-
Globalcode open4education 108
Agradecemos a presena!
top related