Rendered JSF - verificar se registro no ArrayList existe no Rendered

9 respostas
Cherubini

Olá pessoal,

estou com um problema, preciso habilitar um menu de acordo com a permissão do usuário.
As permissoes vem em um ArrayList e na tag Rendered do JSF preciso verificar se o conteudo ‘pedido view’ esta naquele array,se estiver mostra caso nao, nao mostra.

segue exemplo jsp

<t:navigationMenuItem itemLabel="Pedido" action="listPedidos" rendered="#{usuarioMB.usuario.permissoes eq 'pedido View'}"/>

segue exemplo array classe java

public List<String> getPermissoes(){
		List<String> permissoes = new ArrayList<String>();
		for (Direito dir : this.direitos) {
			permissoes.add(dir.getDscDireito());
		}

		return permissoes;
	}

Ficarei no aguardo e obrigado.

9 Respostas

surfzera

você não consegue utilizar o == ao inves do eq ??

Cherubini

tipo, ele nao ta comparando nem com “eq” nem com “==”, a tela roda normal, mais a condicao nao funciona,no teste ele fala que nao tem o “pedido view” sendo que tem, deveria mostrar o menu nao ocultar.

M

Cherubini,

Creio que você não irá consegui comparar dessa forma, pois vc está tentando comparar uma string com uma lista!

Você terá que fazer um método no seu bean retornando boolean. Exemplo:

public boolean isPedidoView() {
     return getPermissoes().contains('pedidoView');
}

espero ter ajudado!

Abraços

Cherubini

Fala markinho,

eu vou ter q fazer isso para cada item do meu menu?

tipo tenho + de 20, vo ter q ter um metodo para cada um ?

Obrigado

M

Cherubini, tive uma ideia!

Tente coocar assim:

<t:navigationMenuItem itemLabel="Pedido" action="listPedidos" rendered="#{usuarioMB.usuario.permissoes['pedido View'] != null}" />

Acho que isso deve solucionar o seu problema! Senão não terá otro jeito, terá que criar mais de 20 métodos!

Abraços

rponte

Cherubini:
Fala markinho,

eu vou ter q fazer isso para cada item do meu menu?

tipo tenho + de 20, vo ter q ter um metodo para cada um ?

Obrigado

Construa o menu programaticamente no managed bean.
Abraços.

Cherubini

markinho wrote
Tente coocar assim:

<t:navigationMenuItem itemLabel=“Pedido” action=“listPedidos” rendered="#{usuarioMB.usuario.permissoes[‘pedido View’] != null}" />

Acho que isso deve solucionar o seu problema! Senão não terá otro jeito, terá que criar mais de 20 métodos!

Abraços

Marquinho assim nao funciona! :frowning:
vlws


rponte wrote

Construa o menu programaticamente no managed bean.
Abraços.

Rponte valeu a dica, mais o sistema nao usa Rich e outra o tempo nao da!RS

vlws

Abraços.

rponte

Não importa. Isso independe do conjunto de componentes que você está utilizando.

Construir um menu simples (com um número de hierarquia fixo) diretamente iterando na página é simples, mas quando se tem uma situação mais complexa não tem para onde correr, é programaticamente mesmo.

Pelo visto você está utilizando o Myfaces Tomahawk, e felizmente há um código de exemplo de como construir o menu dinamicamente :slight_smile:
http://wiki.apache.org/myfaces/Dynamic_Menus_with_JSCookMenu

Abraços e boa sorte.

Cherubini

vlws rponte!!

Vo tentar adaptar o menu dinamico!

Abraços

Criado 8 de julho de 2009
Ultima resposta 9 de jul. de 2009
Respostas 9
Participantes 4