JSF 2.0 Expression language: sintaxe para referenciar um Map de List?

8 respostas
Rafael_Nascimento

tenho esse objeto no meu managedBean:

Map<Integer, List<Object>> meuMap;   //uma chave e varios valores

Como é a sintaxe de uma EL do JSF 2 para acessar o i-ésimo elemento da List mapeada pela chave k ? ?

tentei como segue mas disparou ElException

#{meuBean.meuMap[k][0]}        //pegar o primeiro elemento da List mapeada pela chave 'k' (variavel k)

obrigado

8 Respostas

Rafael_Nascimento

testei aqui e me parece que isto seja uma deficiência do JSF.

A expressão que usei no exemplo serve para arrays bidimensionais.

Hebert_Coelho

Rafael Nascimento:
testei aqui e me parece que isto seja uma deficiência do JSF.

A expressão que usei no exemplo serve para arrays bidimensionais.


Cara, acho que não funciona não viu, ainda mais com List. Como você iria fazer o cast?

Oq você poderia fazer era iterar sobre a lista e pegar o cara que você deseja. Ou se você estiver utilizando xhtml você poderia criar um método em seu MB que recebe por parâmetro os valores do indices e retorna o objeto desejado. [=

Rafael_Nascimento

já resolvi aqui, mas obrigado pela dica xD

sobre o cast, eu coloquei uma List, mas poderia ser de qualquer classe…

de fato parece que não tem jeito de acessar um item de uma List, a qual esteja indexada por chave em Map, diretamente atraves uma EL do JSF 2 :-o

guitarbrasil

Bá e pEor que eu to enfrentando o mesmo problema! Eu tenho de referenciar um property de um bean que é um Map<String, Map<String, String>>! Seria possível?

Rafael_Nascimento

quem sabe no JSF 3.0 vc consiga fazer isso :smiley:

guitarbrasil

Oi amigo obrigado pela resposta mas é bem possível sim fazer com JSF2!
Basta que seja declarado, no meu caso, assim

#{bean.propertyMap[‘keyPai’][‘keyFilho’]}

Abraços!

Rafael_Nascimento

ah, sim, vc teve sorte, porque no seu caso vc só precisa trabalhar com Strings :smiley: . Mas com outros objetos essa sintaxe não da certo!

guitarbrasil

Já tentou sobrescrever o toString()? O que exatamente você deseja?

Criado 2 de março de 2012
Ultima resposta 4 de abr. de 2012
Respostas 8
Participantes 3