Array do post para o javaEE

6 respostas
M

Bom dia.
Tenho o form com alguns elementos formando um array

<input name="item[conforme][1]" id="item_conforme_1">
<input name="item[conforme][2]" id="item_conforme_2">
<input name="item[conforme][3]" id="item_conforme_3">
<input name="item[conforme][4]" id="item_conforme_4">

<input name="item[inconforme][1]" id="item_conforme_1">
<input name="item[inconforme][2]" id="item_conforme_2">
<input name="item[inconforme][3]" id="item_conforme_3">
<input name="item[inconforme][4]" id="item_conforme_4">

Dai como eu busco e manipulo estes dados do request?

Eu percebi q no request eu encontro estes dados no httpServletRequest multipartParametters.
Mas eu n sei como buscar estes dados nem como manipula-los.

Espero que alguem possa me ajudar

6 Respostas

nel

Estamos falando em que? Servlet? JSF? Struts?
Só para que possamos estar no mesmo contexto que o seu. Se for servlet, consegue pegar pelo getParameter, onde você pega pelo ID do seu campo após realizado o submit da página.

Procure postar esse tipo de dúvida na área de JEE, é mais apropriado.
Abraços.

M

servlet. Desculpe.
Mas n teria como eu procurar pelo name?
Porque estes inputs são gerados em cima de registros do banco.
Teria que pegar todos eles para atualizar o banco.

nel

marcofarnezi:
servlet. Desculpe.
Mas n teria como eu procurar pelo name?
Porque estes inputs são gerados em cima de registros do banco.
Teria que pegar todos eles para atualizar o banco.

Bom, uma alternativa é criar um campo hidden e enviar a ele a lista de nomes. Depois, pegar pelo request essa lista de nomes e para cada nome dessa lista você busca nos Parametros. Dessa forma, mesmo que seja gerado dinamicamente os nomes, você consegue descobri-los. Pelo name não sei te responder, mas daria no mesmo. Se é dinamico, tu nao tem controle.

Guerr

Se você colocar os parâmetros exatamente com o mesmo nome, você consegue recuperar como um array com o método getParameterValues()

ViniGodoy

Tópico movido para o fórum de Java EE.

Marcelo_de_Assis

Acho que é possível se você tiver como renomear seus campos para somente:

<input name="item[conforme][]" id="item_conforme_1"> <input name="item[conforme][]" id="item_conforme_2"> <input name="item[conforme][]" id="item_conforme_3"> <input name="item[conforme][]" id="item_conforme_4"> String[] items = req.getParameterValues("item[conforme]");

Eu disse que acho, porque não sei se esses colchetes internos vão ser diferenciados pelo Java.
Normalmente eu faço isso só usando algo do tipo:

Se não, você vai ter que dar algum jeito de passar a quantidade de campos de cada espécie, pro Servlet fazer um for e recebê-los corretamente…


Pelo campo ID do input? Você quis dizer name né?

Criado 2 de fevereiro de 2012
Ultima resposta 2 de fev. de 2012
Respostas 6
Participantes 5