Documente Academic
Documente Profesional
Documente Cultură
2
AGENDA
Usando ui:repeat
Loops simples
Loops aninhandos
Atributos adicionais
3
JSF 2 COLEES DE
DADOS
4
Construes JSF para dados de tamanho varivel
Bean
Ter alguma propriedade no bean que retorna toda a string
html baseada em uma coleo
h:dataTable
Usar um componente do JSF que constri uma tabela a
partir de uma coleo. Alguns componentes de terceiros
como t:dataList (MyFaces/Tomahawk) oferecem ainda
mais opes
Criar seu prprio componente composto
Fazer seu prprio componente que constri algumas tags
html a partir de uma coleo
ui:repeat
Faz loopings explcitos na pgina de resultado
5
Bean
Pros
Muito simples para o autor da pgina usar
Contras
O autor da pgina tem muito pouco controle sobre como a sada
ser apresentada
Qualquer alterao pode necessitar que o servidor onde est a
classe seja reiniciado
Vai contra a separao de camadas e preocupaes do MVC
Cdigo java que constri grandes trechos HTML sempre
indesejvel
6
h:dataTable
Situao
Os dados esto em uma lista ou array, onde cada entrada contm
dados correspondentes a uma linha da tabela
Abordagem
Use h:dataTable com um h:column por coluna da tabela
Prs
Maneira flexvel e relativamente simples de construir uma tabela
Contras
Usado apenas para gerar tabelas
Dados vem de uma fonte nica. Fonte de cada coluna a
mesma em cada iterao. No h como mudar isso.
7
h:dataTable (sintaxe)
8
ui:repeat
Situao
Voc tem dados de tamanho varivel, mas no quer dar a sada
como uma tabela HTML
Voc no pode construir facilmente um componente que d a
flexibilidade necessria ao autor da pgina
Abordagem
Use ui:repeat praticamente da mesma maneira que usaria o
c:forEach do JSTL
Prs
D controle explcito ao autor da pgina
Contras
HTML tradicional no tem loop, assim a pgina fica mais
complexa de entender 9
ui:repeat (sintaxe)
Sintaxe bsica
<ui:repeat var=someVar value=#{someCollection}>
<qualquer cdigo HTML>
#{someVar.someProperty}
</qualquer cdigo HTML>
</ui:repeat>
10
Passos para usar ui:repeat
12
Loop simples: cdigo facelet (parte 2)
13
Loop simples: cdigo managed bean
@ManagedBean
public class Person1
{
private String firstName, lastName, level;
private String[] languages;
14
Loop simples: resultado
15
Loops aninhados: cdigo java
16
Loops aninhados: managed bean
@ManagedBean
public class Company1
{
private List<Programmer> programmers;
17
Loops aninhados: facelet
18
Loops aninhados: resultado
19
Atributos adicionais
20
Atributos adicionais
21
Copyright2016
Copyright 2015 Prof.
Prof.MSc.
Leandro
Gustavo
Rubim
Rodrigues