1
resposta

Diferenças entre tipos de Expression Language

Qual a diferença entre as expressions languages (utilizads no JSF) começadas com cifrão - $ (exemplo ${bean.valor}) e cerquilha - # (exemplo #{bean.valor}) ?

Devemos utilizar as duas ?

Onde devemos utilizar cada uma?

1 resposta

Olá Marcelo, tudo bem?

As expression languages (EL) começadas com cifrão ($) e cerquilha (#) são duas formas diferentes de EL usadas no JSF (JavaServer Faces) para acessar e manipular valores de beans gerenciados.

A diferença principal entre elas está na forma como são avaliadas e quando são executadas:

Expressões com cifrão ($): Essas expressões são avaliadas durante a fase de renderização da página, ou seja, no lado do cliente. Elas são executadas apenas uma vez, quando a página é renderizada, e os valores são definidos nesse momento. As expressões com cifrão são usadas principalmente para exibir dados estáticos na página. Exemplo: <h:outputText value="${bean.valor}" />

Expressões com cerquilha (#): Essas expressões são avaliadas durante o ciclo de vida do JSF, no lado do servidor. Elas são executadas a cada interação do usuário com a página, como um clique em um botão. As expressões com cerquilha são usadas para executar ações, como invocar métodos em um bean gerenciado ou executar lógica de negócios. Exemplo: <h:commandButton action="#{bean.metodo}" value="Enviar" />

A escolha entre usar uma expressão com cifrão ou cerquilha depende do contexto e do objetivo da expressão. Em geral, as expressões com cifrão são usadas para exibir valores estáticos ou dados que não precisam ser atualizados durante o ciclo de vida da página. Já as expressões com cerquilha são usadas para executar ações e acessar valores dinâmicos, que podem ser alterados durante a interação do usuário com a página.