Olá, estou tentando passar parametro do meu JSP para Servlet, no meu JSP tem um botão incluir, quando clicar eu quero que passa um parametro para o Servlet, mas o parametro esta indo vazio, estou fazendo da seguinte forma no meu JSP:
Fiz essa função no JSP
<script type=“JavaScript”>
function selecionaAcao(valorAcao)
{
document.forms[0].acao.value=valorAcao;
}
No BOTÃO incluir fiz isso
<input type=“hidden” name=“acao” value=“0”/>
<input type=“submit” onclick=“JavaScript:selecionaAcao(‘1’);” value=“Incluir” name=“CmdGravar”/>
NO SERVLET esta dessa forma:
public void redirecionar(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException, SQLException
{
int acao = 0;
if(request.getParameter("acao") != null)
acao = Integer.parseInt(request.getParameter("acao"));
switch(acao)
{
case 1:
incluir(request, response);
break;
case 2:
consultaCartorio(request, response);
break;
case 3:
excluir(request, response);
break;
case 4:
alterar(request, response);
break;
case 5:
consultatodos(request, response);
break;
}
Parâmetro vazio você quer dizer que o request.getParameter(“acao”) está null?
Aparentemente não tem nada de errado no seu código. Veja se o browser dá algum erro no rodapé, use o firebug ou dê um alert na function para saber se o js está funcionando. Tire as aspas simples do 1 no onclick.
[quote=soro]
if(!request.getParameter("acao").equals(""))
acao = Integer.parseInt(request.getParameter("acao"));
[/quote]Se, como ele disse, o request.getParameter(“acao”) está nulo, este seu código irá gerar um NullPointerException.
Pessoal, acho que o meu problema não está no Servlet, e sim no JavaScript, pois todo esse tratamento que vc’s estão passando eu, já fiz, o problema e que a acao esta indo nula para o servlet!!!
Inputs vazios em um formulário não retornam null, retornam vazio = “”.
Logo o getParameter retorna um String que contem um valor igual a: “”. Em branco e não null.
[quote=soro]Inputs vazios em um formulário não retornam null, retornam vazio = “”.
Logo o getParameter retorna um String que contem um valor igual a: “”. Em branco e não null.[/quote]
Foi por isso mesmo que eu perguntei, e ele respondeu que estava null.
mude <script type="JavaScript"> para <script type="text/javascript"> e onclick="JavaScript:selecionaAcao('1');" para onclick="selecionaAcao(1)"
Amigo esta mesmo chegando a servlet porque com o codigo que você me mandou não vejo como funcionar
não sei neh… mas acho que o js funciona funfa assim:
Quando você submete ele já faz a requição ao servidor e depois atualiza o dado no seu campo.
Você tem que fazer com que quando você clicar no botão ele primeiro atualize e depois que o submit vá.
Como?
Você pode fazer o seguinte no seu javascript, você primeiro faz a alteração do campo, depois faz um IF para ver se o campo já foi alterado e depois faz o submit ir senão, você cancela o submit.
function selecionaAcao(valorAcao)
{
var formulario = document.forms["idDoForm"];
if (formulario.acao.value == valorAcao) {
formulario.onsubmit = function(){return true};
} else formulario.onsubmit = function(){return false};
Se não estiver errado, o código java script só vai deixar o submit ser executado se realmente o valor de acao for igual ao valorAcao.