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.
Esse artigo pertence a um curso com vários outros tópicos sobre programação web com Java. Clique aqui e acesse agora!
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 alguns exemplos:
<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>
Lógico que existem muito mais expressions que você pode usar no seu projeto. Para acessar uma lista mais completa com exemplos separei alguns links interessantes para você: