Struts – Form com propriedade List

5 respostas
P
Olá pessoal, vou explicar o que estou querendo fazer e se alguem puder me dar uma ajuda ficaria grata. No meu form eu tenho o seguinte:
private String nome;
private List lista = new ArrayList();
Na action, faço algumas manipulações na lista e depois jogo ela no Request
request.setAttribute("minhaLista", form.getLista());
E no jsp...
<td>Nome</td>
<td><html:text property="nome"/></td>
 
<logic:iterate name="minhaLista" id="item" indexId="i">
  <tr>
    <td><bean:write name="item" property="codigo"/></td>
    <td><bean:write name="item" property="descricao"/></td> 
  </tr>
</logic:iterate>
O nome é mostrado e pode ser alterado ( html:text ). Já a lista esta sendo apenas exibida. Quando dou um submit, pode retornar a essa mesma pag, caso ocorra validações que nao foram respeitadas, por exemplo, o campo nome nao pode ser vazio. Nesse caso, o campo nome retorna da forma como havia sido enviado, pois defini que esse campo refere-se ao campo nome do form. Porem estou com dificuldade para recuperar a lista, pois estou apenas mostrando e nao defini como alguma propriedade do form. Como quero apenas mostrar essa lista, pensei em fazer algo parecido com: <html:hidden property="lista"/> Mas quando tentei fazer isso e definir a minha lista como valor dessa propriedade deu erro.
&lt;html&#58;hidden property=&quot;lista&quot; value=&quot;minhaLista&quot;/&gt;
Alguem sabe me informar, como posso fazer? Se tem como recuperar essa lista exibida... definir essa lista como propriedade do meu form??

Grata, Pri

5 Respostas

G

Olá. Seja bem vinda ao Portal Java!!!

Não entendi muito bem a sua dúvida. Você manda uma lista pro JSP, depois você realiza um submit e manda para uma action. Caso tenha validação o fluxo permanece a mesma página mas a lista não é exibida !?

L

Não seria o caso de jogar o Form na sessão?

F

Você está utilizando struts1. Portanto ao realizar o submit, você pode fazer novamente:

Sua lista vai ficar na requisição. E no struts1.x não é criada uma nova requisição a cada submit. :slight_smile:
Abraço.

P

Obrigada Guilherme. É isso mesmo, eu mando uma lista pro JSP, e nessa minha pagina tenho alguns botões sendo que em alguns deve retornar para mesma pagina. O primeiro acesso a essa página é o resultado da consulta no banco e como passei a lista por request ela é exibida normalmente. Depois, eu posso solicitar alguma alteração com os outros botões existentes, só que ai no action eu já não consigo mais acessar a lista. Eu consigo acessar os outros campos do form que são do tipo String, mas a lista não.

lcm4693, não cheguei a testar pois tb já pensei em utilizar sessão, não para jogar o form mas so a lista, porem nao queria utilizar sessao. Caso não consiga vou ter q tentar a sessão mesmo. De qualquer forma, obrigada.

Fabio, compreendi o que falou mas não consegui realizar. Fiz vários testes com o código que postou, mas não consegui jogar a lista no request novamente. Já que não estava dando certo mesmo cheguei a colocar o código de get e set do request no jsp, action, form mas nada… Devo estar “pulando” em algum momento :grin: , então se puder dar mais uma ajudinha…

Obrigada a todo,
Abraço.

R

<html:hidden property=“lista” value=“minhaLista”/>

Se você definir uma propriedade em seu form e gerar um get/set, o comando acima vai funcionar na página jsp.

Criado 19 de junho de 2007
Ultima resposta 29 de jun. de 2007
Respostas 5
Participantes 5