Passar um Vector<Vector> para uma dataTable JSF+RichFaces

Fala galera!

Alguém sabe se é possível vincular uma tabela do RichFaces a um Vector para que a tabela disponha os valores na tabela, como é possível de se fazer na JTable? É que tenho de utilizar uma tabela para dispor dados, sendo que tais dados são armazenados em um Vector, ou seja, para cada casa do vetor exterior, existe um vetor interior, de forma que serão dispostos vários registros de n casas.

Alguém sabe como fazer isso? Ou se é possível ou não fazer isso?

A tag <rich:dataTable> pode ser ligada a um List sem problemas.

Já um Vector<Vector> ou List<List>, eu nunca tentei fazer, mas talvez funcione colocando uma dataTable dentro de outra:

&lt;rich:dataTable value= "#{meuBean.meuVector}" value="vetor"&gt;
   &lt;rich:column&gt;
         &lt;rich:dataTable value="#{vetor}" value="coluna" &gt;
               &lt;rich:column&gt; 
                      etc...
   &lt;/rich:column&gt;
&lt;/rich:dataTable&gt;

Agora se o que você quer são colunas dinâmicas, então é a tag <rich:columns> que implementa isto.

Exemplos e informação sobre como usar esta e outras tags do RichFaces podem ser encontrados no LiveDemo da biblioteca:
http://livedemo.exadel.com/richfaces-demo/richfaces/columns.jsf?c=columns&tab=usage

Olá Tiago!

Não, não é este o caso de colunas dinâmicas. Eu preciso de acessar como registro, uma linha inteira, mas dividida em colunas. Essencialmente, uma tabela mesmo. Sua ideia é interessante, mas ainda teria o problema de que as colunas são preenchidas acessando propriedades de objetos, correto? Logo, não tenho como acessar uma casa de vetor, por exemplo, ao invés de uma propriedade de uma matriz. Eu vou acabar tendo de criar uma classe nova sempre que for necessário, de forma que esta classe teria os devidos atributos e propriedades. Em seguida, eu carregaria uma lista com tais objetos e passaria para a tabela. Mas eu queria uma solução diferente. De qualquer forma, se isso funcionar, então farei isso mesmo por enquanto.

Olá Waldemar,

Você também pode acessar o índice de um vetor dentro do JSF.
Dá uma olhada por exemplo nesse meu código:

&lt;rich:columns value="#{relatorioMB.colunas}" var="coluna" index="ind" style="text-align:right;"&gt;
    &lt;f:facet name="header"&gt;
           &lt;h:outputText value="#{coluna}" /&gt;
     &lt;/f:facet&gt;														
     &lt;h:outputText value="#{impostoMensal.valores[ind]}" style="#{impostoMensal.cssStyles[ind]}"&gt;
          	&lt;f:converter converterId="DecimalConverter"/&gt;
     &lt;/h:outputText&gt;
&lt;/rich:columns&gt;					

Nesse caso eu to usando colunas dinamicas, mas pode notar que na propriedade “value” eu estou referenciando um vetor a partir do seu índice.
Em teoria, você poderia fazer algo como value="#{ bean.vetor[0] }" . Mas teria de testar para ter certeza.

Nossa, cara! Que doidera!

Testarei! Se der certo, eu retorno aqui ok! Mas como ainda tenho que fazer uns ajustes no código, posso demorar um pouquinho a responder!

De qualquer forma, eu volto!

Flws!

eai meu velho conseguio?? se sim mande o exemplo

pq estou com o mesmo problema estou precisando montar uma tabela via codigo

E aí cara? Tudo bom?

Eu não sei se é a melhor solução mas eu tive fazer o seguinte: já que trata-se de um Vector então eu converti o vetor interno em um novo tipo abstrato de dados que contém todos os dados do vetor interno. Ou seja, agora eu tenho um Vector. Este TAD é gerado automaticamente através de um código que fiz e assim é possível acessar os atributos das instâncias deste NovoTAD.

Ex.:

coluna 1 da RichTable acessa NovoTAD.atributo1
coluna 2 da RichTable acessa NovoTAD.atributo2

etc.