JSF - Como fazer comparações para renderizar ou nao o componente

6 respostas
D

Opa :smiley:

Tenho alguns componentes que devem ser renderizados se o nivel do usuario for master e como meu objeto Nivel é um enum, eu fiz o seguinte:

rendered="#{login.nivel == br.com.dp.enum.nivel.Nivel.MASTER}"

Porém isso não funciona. Qual a maneira correta de fazer isso?

[]'s

6 Respostas

Rafael.bnc

Procura passar esta constante para o método get de algum ManagedBean.

D

Mas no JSF vou comparar String usando ==?

Rafael.bnc

Sim.

D

Ai ficaria:

rendered="#{login.nivel == managedBean.nivel"

Isso?

Rafael.bnc

Isto.

rponte

Olá,

Ai ficaria:

rendered="#{login.nivel == managedBean.nivel"

Isso?
Aconselho-te a procurar uma abordagem mais prática e inteligente, ou seja, você poderia deixar a regra que define se um usuário é Master (ou whatever) dentro do próprio objeto Usuario. Algo como:

public boolean isMaster() { return Nivel.MASTER.equals(this.nivel); }

E no componente você faria apenas:

rendered="#{usuarioLogado.master}"

Abraços e boa sorte.

Criado 24 de agosto de 2008
Ultima resposta 27 de ago. de 2008
Respostas 6
Participantes 3