Ajuda com richfaces pickList

1 resposta
cleiton_herrmann

Olá pessoal...

Estou tentando utilizar o componente pickList, mas sem sucesso até agora... Bom, a idéia e exibir uma lista de atributos dos beans de entidades, para que o usuário possa escolher qual campo ele quer imprimir no relatório. Montar o relatório eu ja consegui, só que usando swing, agora estou tentando passar pra web...

Eu ja consegui exibir os atributos no componente pickList, eles vao de uma lista pra outra sem problemas, mas eu nao consigo recuperar os itens selecionados pelo usuário... a lista sempre está vazia... eu estou tentando seguir o segundo exemplo demo [url]http://livedemo.exadel.com/richfaces-demo/richfaces/pickList.jsf;jsessionid=D2AED12D3DEC82DAC86F831A9797A4D0?c=pickList&tab=usage[/url], está na sessao Rich Selects - Pick List

meu código está praticamente igual ao do exemplo, até baixei o fonte do exemplo e copiei o pickListBean pro meu projeto, mas não consigo exibir a lista de itens selecionados, é como se não atualizasse a lista sei lah... vou colocar meu código abaixo:

código da pagina, é um modalpanel
<rich:modalPanel id="selecionarCamposPanel" left="425" top="50" width="500" height="400">
		Selecione os campos do relatório
		<br/>
		
        <rich:pickList value="#{pickListBean.result}"> 
            <f:selectItems value="#{entidades.listaAtributos}"/>
            <a4j:support event="onlistchanged" reRender="result"/>
        </rich:pickList>
        
        <rich:panel id="result" bodyClass="pbody">
            <f:facet name="header">
                <h:outputText value="#{pickListBean.items} Options Choosen"></h:outputText>
            </f:facet>
            <rich:dataList value="#{pickListBean.result}" var="pickList" rendered="#{pickListBean.items>0}"> 
                    <h:outputText value="#{pickList}"/>
            </rich:dataList> 
        </rich:panel>
		<br/>
   		<h:commandButton value="OK" onclick="Richfaces.hideModalPanel('selecionarCamposPanel')" />
   	</rich:modalPanel>
código do managed bean
@Name("pickListBean")
public class PickListBean {
	
	private List<String> result;

	public PickListBean() {
	}

	public List<String> getResult() {
		return result;
	}

	public void setResult(List<String> result) {
		this.result = result;
	}

	public Integer getItems() {
		if (result == null){
			return 0;
		}
		return result.size();
	}
}
código do manage bean que retorna os atributos do relatorio
@Scope(ScopeType.SESSION)
@Name("entidades")
public class Entidades {
	
	private Integer id;
	private String nome;
	private String nomeSimbolico;
	private Integer largura;
    private List<Atributos> atributos = new ArrayList();
    private List<SelectItem> listaAtributos = new ArrayList();
    private List<String> listaAtributosSelecionados = new ArrayList();
	
	//outros getters & setters

	public List<SelectItem> getListaAtributos() {
		Entidades e = new Entidades();
		e.setId(1);
		e.setNome("com.testesoa.menu.pojo.Usuario");
		e.setNomeSimbolico("Relatório de Usuários");
		e.setLargura(555);
        Atributos atributo = new Atributos();
        atributo.setNome("id");
        atributo.setNomeSimbolico("Id");
        atributo.setLargura(30);
        atributos.add(atributo);
        atributo = new Atributos();
        atributo.setNome("cpf");
        atributo.setNomeSimbolico("CPF");
        atributo.setLargura(30);
        atributos.add(atributo);
        atributo = new Atributos();
        atributo.setNome("rg");
        atributo.setNomeSimbolico("RG");
        atributo.setLargura(30);
        atributos.add(atributo);
        for (Atributos a : atributos) {
        	listaAtributos.add(new SelectItem(a.getNome(), a.getNomeSimbolico()));
        }
        return listaAtributos;
	}
	
	public void setListaAtributos(List<SelectItem> listaAtributos) {
		this.listaAtributos = listaAtributos;
	}

	public List<String> getListaAtributosSelecionados() {
		return listaAtributosSelecionados;
	}

	public void setListaAtributosSelecionados(List<String> listaAtributosSelecionados) {
		this.listaAtributosSelecionados = listaAtributosSelecionados;
	}

}
ja tentei usar a listaAtributosSelecionados do bean Entidades no lugar do List result do pickListBean, mas também não funcionou Alguem sabe o q esta errado, faltando ???

Desde já grato !!!

1 Resposta

cleiton_herrmann

Bom pessoal, é uma coisa bem simples, mas q eu nao sabia, afinal estou começando a trabalhar com web há um mes, e pode ajudar quem ainda não saiba tbem
era só colocar o picklist dentro de um <h:form></h:form>, pq toda requisição que vai pro servidor, deve estar dentro de um <h:form></h:form> pra conseguir ser retornada

Criado 22 de outubro de 2009
Ultima resposta 22 de out. de 2009
Respostas 1
Participantes 1