Boa tarde.
Tenho uma jsp e preciso recuperar alguns campos no servlet.
Está da seguinte forma:
JSP
<c:forEach var="cadastrador" items="${cadastradores }" varStatus="x">
<c:choose>
<c:when test="${x.count mod 2 != 0 }">
<tr style="cursor:default" onMouseOver="javascript:this.style.backgroundColor='#40E0D0'" onMouseOut="javascript:this.style.backgroundColor=''">
</c:when>
<c:otherwise>
<tr bgcolor="#BEBEBE" style="cursor:default" onMouseOver="javascript:this.style.backgroundColor='#40E0D0'" onMouseOut="javascript:this.style.backgroundColor=''">
</c:otherwise>
</c:choose>
<td class="td">${cadastrador.pesNom}</td>
<td class="td">
<input type='text' name='pesNom' id='pesNom' value='${cadastrador.pesNom}' SIZE='40' MAXLENGTH='40'>
</td>
<td class="td">
<input type='text' name='porcentagemCadastrador' id='porcentagemCadastrador' value='${cadastrador.porcentagemCadastrador}' SIZE='03' MAXLENGTH='03'>
</td>
</tr>
</c:forEach>
SERVLET
String[] pesNom = request.getParameterValues("pesNom");
String[] porcentagem = request.getParameterValues("porcentagemCadastrador");
Porém, estou sempre recebendo NULL nos campos.
O que está errado? Alguém pode ajudar?
Obrigada.
A principio está correto, testei aqui e funcionou, você está mandando via post ou get?
Faço a chamada assim, via link:
<a href="preCadastro.do?acao=distribuicao">Distribuir<a>
Não sei se o problema pode estar aqui…
Está aí mesmo, você deve colocar os inputs dentro de um form e dar submit no form para enviar as informações.
Segue exemplo:
<form name="frm" action="preCadastro.do?acao=distribuicao" method="post">
<input type="text" name="pesNom" value="nome1"/>
<input type="text" name="pesNom" value="nome2"/>
<input type="text" name="pesNom" value="nome3"/>
<input type="text" name="pesNom" value="nome4"/>
<input type="submit" />
</form>
Olha só, quando eu faço dessa forma:
JSP
<FORM NAME='distribuirPreCadastro' METHOD='POST' ACTION='preCadastro.do?acao=distribuicao'>
SERVLET
public void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{
String acao = request.getParameter("acao");
if(acao.equals("distribuicao")){
System.out.println("ENTROU NA DISTRIBUIÇÃO DOS PRÉ-CADASTROS AOS CADASTRADORES");
HttpSession session = request.getSession();
(......)
String[] pesNom = request.getParameterValues("pesNom");
String[] porcentagem = request.getParameterValues("porcentagemCadastrador");
}
}
Só que agora o meu “ACAO” está chegando null…
Muito estranho isso, pois fiz um teste aqui da forma que te passei funcionou, porém você pode resolver isso colocando a ação como um atributo hidden no seu form:
<form name="form" action="preCadastro.do" method="post">
<input type="hidden" name="acao" value="distribuicao" />
<input type="text" name="pesNom" value="1"/>
<input type="text" name="pesNom" value="2"/>
<input type="text" name="pesNom" value="3"/>
<input type="text" name="pesNom" value="4"/>
<input type="submit" />
</form>
Desta forma funcionaria.
Consegui corrigir o problema. Foi uma falha minha.
Essa JSP que estava dando problema quando submetida, roda dentro de uma div de outra jsp.
Como essa outra jsp “master” possuia um outro form, quando eu submetia, acabava indo o form errado.
Muito obrigada pela ajuda!!