Form dinamico com Struts

eai pessoas, blz?
me deparei com o seguinte problema:
tenho um formulario que tem campos que podem ser dinamicos, ou seja, eu posso clicar num link add more fields e, com dhtml vou exibir mais um campo.
isso eh bico, mas o problema que eu encontrei é como tratar o FormBean? eu não sei qtos campos eu vou ter então não sei como deixar meu bean pra receber essas informações.
além disso, como o formulário vai ser apresentado, caso de algum erro e, na hora que voltar pra tela do form, onde deverá ter OU NAO campos dinamicos preenchidos. enfim, coisa de loco!
o que eu faço?

1 - o struts tem uma ferramente MAGICA que faz isso?
2 - desencana do struts pra esse form e faz na mão?
3 - soca a cara do cliente?

enfim, aceito sugestoes, inclusive de como fazer meu cliente sofrer muito!

[]s

chambs

não mexo muito com Struts, mas por acaso você não consegue colocar o tipo da variavel como um Array?

Tem a opção de pegar um array de String[] do form é só definir os campos no jsp com o mesmo nome. Assim voce recebe esses valores como array de string.

Eu fix um chucho brabo por aqui, mas funciona… heheheh :lol:

Tipo define um prefixo pros seus campos (tipo categoria) e um numero após (pra deixar o nome dele único tipo “categoria1”). O número eh gerado no dinamismo, mas o prefixo continua o mesmo.

Não defina nada no seu form. Recebe os valores como request.getParameters(); Com isso voce terá todas as variáveis que estiverem no request da aplicação. Agora é só iterar o request.getParameters e buscar os valores que tiverem o prefixo “categoria” (variavel.startsWith(“categoria”)).

Aih eh soh fazer o q voce quiser com os valores…

Abraços

uia! boa ideia hein?
falai, os programadores sao os melhores gambiarristas!!! hahaha

valeo,
[]
chambs

[quote=NoodleZ]Tem a opção de pegar um array de String[] do form é só definir os campos no jsp com o mesmo nome. Assim voce recebe esses valores como array de string.

Eu fix um chucho brabo por aqui, mas funciona… heheheh :lol:

Tipo define um prefixo pros seus campos (tipo categoria) e um numero após (pra deixar o nome dele único tipo “categoria1”). O número eh gerado no dinamismo, mas o prefixo continua o mesmo.

Não defina nada no seu form. Recebe os valores como request.getParameters(); Com isso voce terá todas as variáveis que estiverem no request da aplicação. Agora é só iterar o request.getParameters e buscar os valores que tiverem o prefixo “categoria” (variavel.startsWith(“categoria”)).

Aih eh soh fazer o q voce quiser com os valores…

Abraços[/quote]
Eu já cheguei a fazer algo parecido mas o meu problema era maior…
pois o cara poderia excluir a linha…
então eu tinha que “reiniciar” a contagem dos meus marcadores… :S

Eu resolvi este problema utilizando como base o exemplo: http://planetstruts.org/struts2-showcase/conversion/enterPersonsInfo.action

Coloquei 2 atributos na action, numeroFields e lstFields e ai a cada clique add Field, chamo a action mudando um atributo com o número de fields e fazendo um refresh na parte seguinte parte do jsp:

<s:set name=“numFields” scope=“request” value=“numeroFields” />
<c:forEach begin=“0” end="${numFields}" var=“i”>

Field :