quinta-feira, 17 de março de 2011

Acessando Dados e Métodos

O código é auto explicativo!!

01: FacesContext ctx = FacesContext. getCurrentInstance() ;
02: ELContext ectx =ctx. getELContext() ;
03: Application app = ctx. getApplication( ) ;
04: ExpressionFactory factory = app. getExpressionFactory() ;
05: ValueExpression ve =
factory. createValueExpression(ectx,
"#{ bindings. DepartmentName. inputValue} ",
java. lang. String) ;
06: String dname = ve. getValue( ectx) ;

Linha 01 ■ Obter o objeto FacesContext.
Linha 02 ■ Obter ELContext (JSF), necessário para resolver a EL.
Linha 03 ■ Obter a referencia do objeto Application do JSF necessário para localização do factory EL Resolver.
Linha 04 ■ Exibe o objeto Application sendo usado para obter a factory corrente.
ExpressionFactory
Linha 05 ■ Se faz uso da ExpressionFactory para fazer o parse da EL String #{ bindings
. DepartmentName. inputValue} para um objeto do tipo ValueExpression. Perceba que a classe esperada para a expressão ser resolvida é passada para o método. A Fábrica tenta forçar o valor para o seu tipo e irá lançar uma exceção (javax. faces. el. EvaluationException) se não for capaz de fazer essa conversão. Se esse argumento é setado para null, então o valor que irá ser retornado será um POJO.
Linha 06 ■ o método getValue() é chamado na ValueExpression recuperando o valor atual. Esse objeto também suporta o método getType() caso você necessite checar o tipo ou a classe do seu payload.

Nenhum comentário:

Postar um comentário