Exibir List de um List usando a4j:repeat

2 respostas
marcos4ft

Pessoal,

eu tenho um set de uma classe

public class Modulo {
    public class Modulo {
}
no meu managed bean eu recuperto esse set e jogo num list (só um pedaço do codigo)
Map<String,Object>map = new HashMap<String, Object>();
Map<String,Object>mapFunc = new HashMap<String, Object>();
map.put("st_modulo", inf.get(Modulo.ST_MODULO).toString());
Map<String,Object>inf = lista.get(x).recuperaInformacoes();
Set<Funcionalidade> listaFunc =  (Set<Funcionalidade>) inf.get(Modulo.FUNCIONALIDADES);
			for(Funcionalidade atual: listaFunc){
				mapFunc.put("nomeFunc", atual.getNome());
				listaFuncionalidades.add(mapFunc);
			}
			map.put("funcionalidade", listaFuncionalidades);
			
			lstModulo.add(map);

A minha duvida é a seguinte, eu recuperei a os dados de Funcionalidade numa boa e guardei no listaFuncionalidades
mas como que eu faço pra exibir no jsf?? estou usando rich Faces

<a4j:repeat value="#{permissaoMB.lstModulo}" var="func">
								#{func.funcionalidade.nomeFunc}
							</a4j:repeat>

Do jeito q fiz acima da o seguinte erro:

javax.servlet.ServletException: /view/editarpermissao.xhtml: For input string: "nomeFunc"

Se eu colocar só:

<a4j:repeat value="#{permissaoMB.lstModulo}" var="func">
								#{func.funcionalidade}
							</a4j:repeat>

me retorna:

[{nomeFunc=TesteFunc}] onde TesteFunc é o nome q cadastrei para testes

2 Respostas

B

para funcionar o repeat vc precisa dizer o que o jsf vai faze com aquele valor, por exemplo:

<a4j:repeat .....> <h:outputText .../> </a4j:repeat>

mas eu tb recomendaria vc avaliar o uso do h:dataTable.

marcos4ft

Na verdade, não precisa, apenas usando #{func.funcionalidade} ele ja exibe o valor(não sei se é boa pratica fazer isso, mas estou apenas fazendo para testes, uso sempre o h:outputText), mas ja consegui resolver.

Eu tinha um primeiro repeat

<a4j:repeat value="#{permissaoMB.lstModulo}" var="permissao">

E pra mostrar os valores do list que estava no lstModulo eu fiz

<a4j:repeat value="#{permissao.funcionalidade}" var="func">

e pra exibir os dados:

#{func.nome}
Criado 11 de novembro de 2009
Ultima resposta 11 de nov. de 2009
Respostas 2
Participantes 2