Como pegar "Array" no lado controle

Boa tarde PessoALL

Estou novamente aqui, solicitando 1 ajuda.

Criei 1 tela onde o usuário insere itens em 1 página “PAI”, ou seja, não tem como eu saber quantos itens será inseridos

então eu criei alguns input´s type hidden na página “PAI” com os dados incluídos, até ai tudo bem.

Exemplo do codigo que eu criei. 1 amigo meu disse que se eu quiser criar 1 Array deveria colocar sempre os nomes seguidos de [], pensando nisso criei os inputs abaixo (note que ai tem 2, mas o código js, cria de 1 a quantos necessitar)

<td align="center"><input value="acess" name="inpTpItem[]" id="inpTpItem_1" type="hidden">
    <input value="1" name="inpReferencia[]" id="inpReferencia_1" type="hidden">
    <input value="1" name="inpQtdPecas[]" id="inpQtdPecas_1" type="hidden">
    <input value="1" name="inpTipoItem[]" id="inpTipoItem_1" type="hidden">
    <input value="1" name="inpComposicao[]" id="inpComposicao_1" type="hidden">
    <input value="1" name="inpMedLiqL[]" id="inpMedLiqL_1" type="hidden">
    <input value="1" name="inpMedLiqC[]" id="inpMedLiqC_1" type="hidden">
    <input value="1" name="inpAceCort[]" id="inpAceCort_1" type="hidden">
    <input value="N" name="inpUsaPallet[]" id="inpUsaPallet_1" type="hidden">
</td>

<td align="center"><input value="acess" name="inpTpItem[]" id="inpTpItem_3" type="hidden">
    <input value="2" name="inpReferencia[]" id="inpReferencia_3" type="hidden">
    <input value="2" name="inpQtdPecas[]" id="inpQtdPecas_3" type="hidden">
    <input value="2" name="inpTipoItem[]" id="inpTipoItem_3" type="hidden">
    <input value="2" name="inpComposicao[]" id="inpComposicao_3" type="hidden">
    <input value="2" name="inpMedLiqL[]" id="inpMedLiqL_3" type="hidden">
    <input value="2" name="inpMedLiqC[]" id="inpMedLiqC_3" type="hidden">
    <input value="2" name="inpAceCort[]" id="inpAceCort_3" type="hidden">
    <input value="N" name="inpUsaPallet[]" id="inpUsaPallet_3" type="hidden">
</td>

Agora vem meu problema, como pegarei estes dados do lado do servidor ? ele irá mesmo como array? meu “server” é em TomCat

ou tem alguma outra forma, tentei enumerar os mesmos, mas como preveni, poderá dar erro caso o usuário exclua 1 numero:

Exemplo:

Item 001
Item 002
Item 003

Seria tamanho 3 dos “elementos” porém, caso ele exclua o numero 2 ?, seria Item 001 e Item 003 (exemplo do caso dos id do codigo acima) porem, daria erro pois 2 elementos para “item 003”

Tem alguma função javascript que eu consigo colocar estes inputs em array e enviar via post ?

Não sei se consegui me expressar, qualquer coisa deixa msg que tento descrever mais meu problema.

Desde já agradeço a atenção

Christian

a idéia está quase certa

tem que ser algo como:

&lt;td align="center"&gt;
&lt;input type="text" name="inpTpItem[1].inpReferencia"&gt;&lt;/td&gt;
&lt;/td&gt;   

Mas se tiver usando Struts tem um esquema diferente… tem que fazer um Form com item de form

Boa tarde

Bom, não estou usando struts, estou fazendo o html na mão mesmo com js, consegui gerar os inputs através do js, porém, como eu disse, o usuário pode inserir 4 seguidos, e no meio excluir o item 2, ai como ficaria esta numeração? 1,3,4 ? por isso estou com esta dúvida, de como colocar estes dados em array, não importando o tanto de itens dele, pois com o método size pego o tamanho e gravo os itens no banco de dados.

estou sem idéia de como fazer pra jogar pra “array” e pegar os dados do lado controle.

Christian

isso mesmo

seu array seria inpTpItem

i começando do zero ia pra cada campo

&lt;td align="center"&gt;   
&lt;input type="text" name="inpTpItem[0.campo1"&gt;&lt;/td&gt;   
&lt;input type="text" name="inpTpItem[1].campo2&gt;&lt;/td&gt;   
&lt;input type="text" name="inpTpItem[2]campo3&gt;&lt;/td&gt;   
&lt;input type="text" name="inpTpItem[3]campo4&gt;&lt;/td&gt;   
&lt;/td&gt;   

no JavaScript

numeromoLinhas = document.getElementById("inpTpItem").value ;
	for(i=0; i &gt;&lt; parseInt(numeromoLinhas)-1; i++){
		alert(inpTpItem['+i+'].campo'+i);
        } 

[quote=Focão]isso mesmo

seu array seria inpTpItem

i começando do zero ia pra cada campo

&lt;td align="center"&gt;   
&lt;input type="text" name="inpTpItem[0.campo1"&gt;&lt;/td&gt;   
&lt;input type="text" name="inpTpItem[1].campo2&gt;&lt;/td&gt;   
&lt;input type="text" name="inpTpItem[2]campo3&gt;&lt;/td&gt;   
&lt;input type="text" name="inpTpItem[3]campo4&gt;&lt;/td&gt;   
&lt;/td&gt;   

no JavaScript

numeromoLinhas = document.getElementById("inpTpItem").value ; for(i=0; i &gt;&lt; parseInt(numeromoLinhas)-1; i++){ alert(inpTpItem['+i+'].campo'+i); } [/quote]

beleza, até ai entendi, porém, se o usuário excluir o numero ? e ficar assim:

&lt;td align="center"&gt;   
&lt;input type="text" name="inpTpItem[0].campo1"&gt;&lt;/td&gt;   
&lt;input type="text" name="inpTpItem[2]campo3&gt;&lt;/td&gt;   
&lt;input type="text" name="inpTpItem[3]campo4&gt;&lt;/td&gt;   
&lt;/td&gt;   

No for não irá dar erro ?

Por isso que gostaria de jogar em array, sem definir qual posição é a dele

não queria eu mesmo enumerar o numero que vai no nome do array, queria algo mais “automático”

Christian

Olá!

Não sei se entendi direito, mas acho que o método “HttpServletRequest.getParameterValues()” vai resolver seu problema. É so você colocar as opções em uma lista e resgatar todos os valores com este método.

Espero ter ajudado!

Bom dia diegobsi

tentei o comando que vc passou, ele me retornou isso.

inpTpItem[]
inpReferencia[]
inpQtdPecas[]
inpTipoItem[]
inpComposicao[]
inpMedLiqC[]
inpMedLiqL[]
inpAceCort[]
inpUsaPallet[]

mesmo eu colocando 2 itens ele me retorna só 1

O que mais devo fazer ? estou meio perdido agora.

Agradeço desde ja

Christian

Bom dia, Cemillen!

Bom como eu te disse eu não sei se entendi seu problema. Mas ai vai um pequeno exemplo de como utilizar o método getParameterValues():

Exemplo:

Código da página que tratará a requisição.

<%
String[] arrCheckBox = request.getParameterValues(“arrCheckBox”);
%>

Depois disso e só percorrer o Array e resgatar os valores.

Espero ter ajudo!