Olá desenvolvedores, hoje iremos falar sobre o JSF Expression Language que permite que os usuários acessem os dados dinamicamente a partir dos componentes JavaBeans usando várias expressões. Mas que expressões são essas e quais são as vantagens em utilizá-las?

Antes, porém, entenda que JavaBeans são componentes de software escritos na linguagem de programação Java. E ainda, de acordo com a Wikipédia, “um bean também pode ser definido como uma classe Java que expõe propriedades, seguindo uma convenção de nomenclatura simples para os métodos getter e setter”.

Dessa forma podemos escrever operações normais usando, por exemplo, a notação #{operation-expression}. E assim conectar a página JSF com o controlador do lado do servidor ManagedBean.

O QUE SÃO JSF EXPRESSION LANGUAGE

As expressões JSF Expression Language ou JSF EL são as expressões de valor imediato, cuja sintaxe é ${}. Ou expressões de valor diferido que são avaliadas durante a fase do ciclo de vida sempre que necessário, sua sintaxe é #{expression}.  Esta podem ser de dois tipos, expressão de valor ou expressão de método.

#{managedbean.atributo}
#{managedbran.acao}

VANTAGENS DO JSF EL

As principais vantagens da linguagem de expressão ou Expression Language JSF são, poder referenciar propriedades de bean onde o bean pode ser um objeto armazenado no escopo de solicitação, sessão ou aplicativo. Fornecer acesso fácil aos elementos de uma coleção que pode ser uma lista, um mapa ou um array.

E ainda, realização de operações aritméticas, lógicas e relacionais que podem ser feitas usando a linguagem de expressão. Conversão automática de tipo e mostrar os valores ausentes como strings vazias em vez de NullPointerException.

FAZENDO A CONEXÃO

A grande pergunta é, como conectar a classe Java que só roda do lado do servidor a página XHTML que roda do lado do cliente? Considere por exemplo um campo de texto, como fazer com que o conteúdo digitado pelo usuário seja capturado e enviado para o servidor, tornando a interação dinâmica? Por meio da Expression Language.

Temos de um lado a página JSF e o ManagedBean que é o lado do servidor, é o back-end. O que queremos é conectar os dados que vem da tela com os atributos do ManagedBean, gravando-os no servidor. É neste contexto que se insere a expressão de linguagem.

Desse modo a conexão do Front-end com o back-end, é neste caso, realizado por meio da notação de EL #{expression}. E o fazemos primeiro chamando o ManagedBean por meio da expressão que a referencia e depois invocando o atributo ou a ação, como já mencionado e como mostra o exemplo na imagem abaixo:

EM POUCAS PALAVRAS

A prática é bem mais fácil do que a teoria faz parecer, basta apenas praticar, passar um tempo com o framework para se familiarizar.