Conversão

Olá pessoal!

Estou com o seguinte problema…

Estou usando um componente do PrimeFaces (p:dataTable), ele funciona assim…

é exibido uma lista onde é possível selecionar várias linhas (selectionMode="multiple")

no ManagerBean tem um atributo vetor que recebe os valores selecionados, daí preciso converter esse vetor para

lista, para que eu possa setar um atributo do objeto que será persistido que recebe como parâmetro uma lista…

[code]<p:dataTable var=“documento” value="#{documentosEmAnexoMB.documentos}"
paginator=“true” rows=“8” paginatorPosition=“bottom” selection="#{alunoMB.docsSelecionados}">
<f:facet name=“header”>Documentação</f:facet>

<p:column selectionMode="multiple" />

<p:column>
    <h:outputText value="#{documento.nome}" />
</p:column>

<f:facet name="footer">
<p:commandButton value="View" image="ui-icon ui-icon-search"
   update="display" oncomplete="docs.show()"/>

</f:facet>

</p:dataTable>[/code]

no backbean o atributo DocAnexo recebe como parâmetro uma lista, porém o datatable trabalha com vetor, então preciso converter esse vetor para lista
para passar como parâmetro ao método setDocAnexo…

aluno.setDocAnexo(List<DocAnexo>);

existe um relacionamento n:n entre Aluno e DocAnexo;

alguém tem uma solução para esse problema?

Boa tarde edercs,

Já tentou utilizar a classe Arrays?

ela possui um método chamado asList, o qual lhe retornará um list a partir de um array.

List<DocAnexo> lista = Arrays.asList(seuArrayaqui);

espero ter ajudado.

E ae, blz?

sim, já tentei utilizar asList, após isso tentei criar meu próprio método pra converter, mas caí no mesmo
problema…

com o asList o backbean ficou assim…

[code]public void salvar() {

    aluno.setDocAnexo(Arrays.asList(docsSelecionados));

    try {
        dao.create(aluno);
    } catch (Exception e) {
        System.out.println("Houve problema na gravação dos dados: " + e.getMessage());
    }

}[/code]

mas ao testar, ocorre um erro acusando o atributo docsSelecionados como null…

Então, implementei um p:dataList que mostra os dados selecionados pra verificar se realmente o atributo docsSelecionados está null…

Os dados são exibidos corretamente no p:dataList confirmando que o atributo docsSelecionados não está null…

Por alguma razão o docsSelecionados perde os valores quando o método salvar é invocado…

O que pode ser?

Obrigado!

Será que esse seu problema não está relacionado com o tipo de bean que está usando. Será que não precisa usar um bean de sessão ao invés de um bean de request? Pode ser que ele esteja perdendo os valores entre um request e outro. Sem mais detalhes do seu fonte não da pra ajudar muito!

Estou usando escopo @ViewScoped, o problema não é esse, se fosse, o p:dataList não seria preenchido, além disso já tentei o escopo de sessão…

Tenho um atributo private DocAnexo[] docsSelecionados
encapsulado, que recebe os valores selecionados

Resolvido!

Olá edercs.

Estou com o mesmo problema! Ao salvar a lista com os valores selecionados está nula.
Qual foi a solução encontrada?

Obrigado