Tópicos Avançados em Javaserver  Faces
Walter Mourão
walter.mourao@gmail.com
O Ciclo de vida da
requisição JSF
Action Listener
 Mecanismo de intervenção na requisição JSF
 Um componente pode prever 0..n listeners, cada um 
respondendo a um evento diferente
Ex:
<tr:table var="row" 
value="#{namesListForm.names}" 
selectionListener="#{namesListController.selectionChanged}"
...
Escopo
 O JSF provê os escopes request, session, 
application (e page). O Trinidad provê também o 
pageFlowScope
Ex:
<tr:outputText 
value=”#{pageFlowScope.someProperty}”/>
Ajax
 No Trinidad, o Ajax é conhecido como PPR (Partial 
Page Rendering), e é um conjunto bem completo 
de maduro de classes Java e Javascript
Enviando Javascript
 O Trinidad permite que o servidor envie código 
javascript para o navegador
Subforms
 São elementos que permitem a submissão de área 
independentes
<tr:form>
<tr:subform>
...
</tr:subform>
<tr:subform>
…
</tr:subform>
</tr:form>
Contêineres de
componentes
 O Trinidad usa o conceito de contêineres para 
manter os ids de uma página como únicos
 Exemplos de contêineres: subform, table
Converter
 O converter é usado para converter um dado de um 
determinado formato para outro
Ex:
<tr:inputText label="String Field:"
value="#{frm.xpto}" converter="lowerCaseConverter"/>
…
<tr:inputText label="String Field:" value="#{frm.xpto}">
<f:converter converterId="lowerCaseConverter"/>
</tr:inputText>
Validator
 O validator é um elemento que faz a validação de 
dados no próprio form
Ex:
<tr:inputText label="String Field:" value="#{frm.xpto}">
<f:validator validatorId="onlyAlphaValidator"/>
</tr:inputText>
Componentes baseados em
Facelets
 O Facelets permite a criação de componentes de 
forma simples
Outros elementos
“interessantes”
 tr:poll
 tr:setActionListener
 tr:fileDownloadActionListener
 tr:validate...
JSF 2.0
 Facelets “nativo”
 Desenvolvimento de componentes facilitado 
(usando Facelets !)
 Ajax “nativo”
 View parameters: atribuição de parâmetros do url a 
atributos de beans
 Eventos de sistema: listeners para tipos de eventos
 ...

Tópicos avançados em JSF