Advertisement

Aula 11 - Expression Languages e Facelets

1- Introdução


Um dos maiores desafios da manipulação de Views dentro das linguagens web é tornar as páginas HTML "dinâmicas". Imagine que você têm uma página que realiza um cadastro, faz uma busca, filtra dados, edita, exclui, etc. Isso tudo torna o seu website uma ferramenta e não apenas uma "vitrine" estática.

Nesta aula iremos discutir sobre expression languages que já foram introduzidas por indução no ultimo post e sobre facelets.

2- Expression Languages e facelets


O EL permite que você use componentes JavaBeans em páginas XHTML ou JSP. Por exemplo, o atributo de teste da seguinte tag condicional é fornecido com uma expressão que compara com o número de itens no bean com escopo de sessão chamado cart.

<c: if test = "$ {sessionScope.cart.numberOfItems> 0}">
  ...
</ C: if>

A tecnologia JavaServer Faces usa o EL para as seguintes funções:
  • Avaliação diferida e imediata de expressões
  • A capacidade de configurar dados
  • A capacidade de invocar métodos
  • Vendo o Else no EL nos aplicativos JavaServer Faces.

Para resumir, o seguinte fornece uma descrição do seguinte:
  • Ler dinamicamente dados de aplicativos armazenados em componentes JavaBeans, várias estruturas de dados e objetos implícitos
  • Gravar dados dinamicamente, como entrada do usuário em formulários, para componentes JavaBeans
  • Invocar métodos estáticos e públicos arbitrários
  • Realize dinamicamente operações aritméticas

2.1 Choose

O choose permite que se coloque uma condição para exibição de um trecho de código XHTML. Veja um exemplo:

<c:choose>
<c:when test="#{jSTLBackingBean.rendered}">
Enabled
</c:when>
<c:otherwise>
Disabled
</c:otherwise>
</c:choose>


2.2 Repeat


O repeat é um comando que permite iterar sobre uma lista livremente sem a necessidade de expor os dados em forma de tabela. Veja um exemplo:

<ui:repeat var="o" value="#{order.orderList}" varStatus="status">
<tr>
<td>#{o.orderNo}</td>
<td>#{o.productName}</td>
<td>#{o.price}</td>
<td>#{o.qty}</td>
</tr>
</ui:repeat>



Nenhum comentário

Conta pra mim sua opinião!

Fale comigo