Problema com lista no Vraptor

Pessoal Boa Noite !! adotei o Vraptor para fazer um projeto e me deparei com o seguinte problema!!

Tenho um controller que espera várias listas retornadas de uma jsp

public void enviarTransacaoMF(List<String> transacaoList,List<String> transacaoList2 , List<String> transacaoList3
, List<String> transacaoList4, List<String> transacaoList5, List<String> transacaoList6, List<String> transacaoList7
, List<String> transacaoList8) {

Porém dentro dessas listas preciso recuperar algumas informações q estou setando direto quando o usuário seleciona o radioButton “SIM” e preciso recuperar também o valor digitado pelo usuário em um campo texto, associado a Lista selecionada:

       &lt;c:forEach items="${lista}" var="paramImpedBean" varStatus="rowCounter"&gt;
            &lt;tr&gt;
                &lt;td align="center"&gt;
                    ${paramImpedBean.ativo}
                &lt;/td&gt;
                &lt;td align="center"&gt;
                    &lt;input type="radio" name="transacaoList[${rowCounter.count}]" value="${paramImpedBean.idImpedimento};${paramImpedBean.ativo};${paramImpedBean.fxInicOper};${paramImpedBean.fxFimOper}"&gt;Sim
                    &lt;input type="radio" name="transacaoList[${rowCounter.count}]" checked value=""&gt;Não
                &lt;/td&gt;
                &lt;td align="center"&gt;
                	${paramImpedBean.dsImpedimento}
                &lt;/td&gt;
                &lt;td align="center"&gt;
                	&lt;input type="text" name="fxInicOper[${rowCounter.count}]" value=""&gt;&lt;/td&gt;                    
                &lt;td align="center"&gt;
		&lt;input type="text" name="fxFimOper[${rowCounter.count}]" value=""&gt;&lt;/td&gt;
            &lt;/tr&gt;
        &lt;/c:forEach&gt;

Alguém poderia me ajudar ?? Ou sugerir alguma outra forma de recuperar a informação digitada no campo texto associado as informações da Linha selecionada??

Muito Obrigado !!

cara, não entendi o que vc quer fazer, mas receber uma 8 listas no método do controller é beem estranho

vc queria que o VRaptor transformasse as informações separadas por ; em uma List?

o que vc quer fazer na realidade?

Lucas Muito Obrigado por responder, realmente é um pouco estranho mas foi a solução q encontrei, vou tentar ser um pouco mais claro:

Tenho uma Jsp que é populada com 8 Listas mesmo, retornadas de um Banco de Dados, essas listas são colocadas em Divs que representam Abas em uma tela

para cada Lista(ABA) existem itens , onde temos 2 radioButtons (SIM) e (NAO) para selecionar cada linha de cada lista, selecionando o radio (SIM) estou amarrando values onde temos informações fixas:

value="${paramImpedBean.idImpedimento};${paramImpedBean.ativo}

e mais 2 valores que são oriundos de campos que são “Text” ou seja podemos entrar com os valores, que são:

${paramImpedBean.fxInicOper};${paramImpedBean.fxFimOper}

passando no ao todo 4 parâmetros como abaixo:

//RADIOS COMO ESTAO NA JSP
<input type=“radio” name=“transacaoList[${rowCounter.count}]” value="${paramImpedBean.idImpedimento};${paramImpedBean.ativo};${paramImpedBean.fxInicOper};${paramImpedBean.fxFimOper}">Sim
<input type=“radio” name=“transacaoList[${rowCounter.count}]” checked value="">Não

Quando seleciono o radio (SIM) e faço o Submit para retornar ao controller, envio um List<String> com os valores correspondentes a linha selecionada

Não estou conseguindo recuperar no controller os valores dos campos Text , representados pelos parâmetros: ${paramImpedBean.fxInicOper};${paramImpedBean.fxFimOper}

Acredito que esteja estranhando pq geralmente enviamos somente os Ids dos selecionados para as informações serem obtidas posteriormente, nesse caso as informações dos selecionados são enviados para o controller como um List<String> e não estou conseguindo enviar as informações imputadas nos campos “Text”

//LISTA 1( SERÁ REPRESENTADO na ABA 2)

<c:forEach items="${lista1}" var=“paramImpedBean” varStatus=“rowCounter”>
<tr>
<td align=“center”>
${paramImpedBean.ativo}
</td>
<td align=“center”>
<input type=“radio” name=“transacaoList[${rowCounter.count}]” value="${paramImpedBean.idImpedimento};${paramImpedBean.ativo};${paramImpedBean.fxInicOper};${paramImpedBean.fxFimOper}">Sim
<input type=“radio” name=“transacaoList[${rowCounter.count}]” checked value="">Não
</td>
<td align=“center”>
${paramImpedBean.dsImpedimento}
</td>
<td align=“center”>
<input type=“text” name=“fxInicOper[${rowCounter.count}]” value=""></td>
<td align=“center”>
<input type=“text” name=“fxFimOper[${rowCounter.count}]” value=""></td>
</tr>
</c:forEach>

//LISTA 2( REPRESENTADO na ABA 2)

<c:forEach items="${lista2}" var=“paramImpedBean” varStatus=“rowCounter”>
<tr>
<td align=“center”>
${paramImpedBean.ativo}
</td>
<td align=“center”>
<input type=“radio” name=“transacaoList[${rowCounter.count}]” value="${paramImpedBean.idImpedimento};${paramImpedBean.ativo};${paramImpedBean.fxInicOper};${paramImpedBean.fxFimOper}">Sim
<input type=“radio” name=“transacaoList[${rowCounter.count}]” checked value="">Não
</td>
<td align=“center”>
${paramImpedBean.dsImpedimento}
</td>
<td align=“center”>
<input type=“text” name=“fxInicOper[${rowCounter.count}]” value=""></td>
<td align=“center”>
<input type=“text” name=“fxFimOper[${rowCounter.count}]” value=""></td>
</tr>
</c:forEach>

se vc tem o id do objeto, vc não precisa passar todos os atributos dele pra lá e pra cá. basta pegar o id, e puxar o objeto do banco de dados…

assim vc conseguiria receber no controller uma List com esses ids, daí vc procura eles no banco de dados…

de qqer forma pra receber uma lista no controller é só usar o mesmo nome:

<input name="bolinha[${row.count}].id" ...>

no controller:

public void metodo(List<Algo> bolinha, ...)

ps: coloque os códigos entre e

Entendi Lucas, mas realmente a necessidade seria recuperar esses parâmetros da Linha dos selecionados sem ter q consultar novamente no Banco de Dados, e se possível os valores imputados no campo text de cada linha como um dos parâmetros do List<String>

Hoje no controller eu consigo recuperar os campos

"${paramImpedBean.idImpedimento};${paramImpedBean.ativo} pois já estão populados no “bean” que carregou a lista, só não consigo recuperar os campos populados dinamicamente através dos campos “Text”

vc chamou os campos texto de:

<input type="text" name="fxInicOper[${rowCounter.count}]" value=""></td> 
<td align="center"> 
<input type="text" name="fxFimOper[${rowCounter.count}]" value=""></td> 

então vc precisa receber no controller

....(....,List<Algo> fxInicOper, List<Algo> fxFimOper)

Imaginei que teria que receber no Controller algo como uma List<Algo> fxInicOper, List<Algo> fxFimOper assim como vc falou !!

O Único problema é que recebendo assim preciso associar cada fxInicOper e fxFimOper a linha selecionada correspondente e não terei o valor já dentro da List<String> passada como parâmetro.

Pensei que poderíamos ter alguma outra solução para recuperar os valores na mesma List<String>, pensei até em tentar popular esses 2 campos do lado Client via JavaScript

cara, trabalhar com strings desse jeito é loucura…

faça o seguinte, crie uma classe que contenha as os dados que vc quer:

private class Linha {
     private List<String> transacoes;
     private String fxInicOper;
     private String fxFimOper;
    //getters e setters
}

no construtor receba só uma List:

public void metodo(List<Linha> linhas) {....}

e na hora de criar o seu formulário é só nomear os inputs:

<foreach em row>

   <foreach em outro>
      <input name="linhas[${row.count}].transacoes[${outro.count}] />
   </foreach>
<input name="linhas[${row.count}].fxInicOper" />
<input name="linhas[${row.count}].fxFimOper" />

</foreach>

aí cada aba seria uma linha, e funcionaria do jeito que vc quer.

e de preferencia use objetos pra fazer coisas e não strings.

Muito Obrigado Lucas, implementei da maneira que vc falou e deu certo !!

Deus Abençoe !! :lol: