Passar parâmetros de uma JSP para um servlet

5 respostas
A

Pessoal,

tudo bem? Estou tentando passar uns valores, coletados de um form, para um servlet. Inicialmente eles eram passados via URL, mas aconteceu uma situação em que a quantidade de parâmetros está estourando o limite de caracteres na URL. Tentei então criar um campo hidden no form e colocar os parâmetros lá, mas o valor não está sendo passado para o Servlet. Alguém tem uma sugestão para resolver isso?

Javascript

function finalizaTarefa(obj){
	var frm = document.forms[0];
	var rec_no_flow = frm.rec_no_flow.value;
	var us_task = frm.nom_aprov.value;
	var array = document.command.checkboxes.value;
	
	// seleciona todos os documentos
	frm.masterCheckbox.checked = true;
	masterCheckboxControl();
	
    document.getElementById('array').value=array;
	
	  frm.action = 'command?cmd=finaliza-task&keep=finalizaTask&rec_no='+rec_no_flow;
	  //frm.action = 'command?cmd=finaliza-task&keep=finalizaTask&rec_no='+rec_no_flow+'&checkboxes='+array;
	  frm.submit();
}

e JSP

<form action="" method="post" enctype="multipart/form-data" name="command">
<input type="hidden" name="array" id="array" value="" >
(...)
<input name="Button" tabindex="40" type="button" class="botao" value="Finalizar Tarefa" onclick="finalizaTarefa(this);" >
</form>

5 Respostas

G

Da uma olhada na classeHttpServletRequest.
Coloque na action do form a sua servlet, e na servlet basta fazer request.getParameter(“parametro”);

A

Guilherme, já fiz isso… na verdade foi assim que eu percebi que não está sendo passado nada pro servlet. Quando dou um request.getParameter(“array”), ele retorna nulo…

I

Assim:

request.getAttribute("array")

Vc vai ter que fazer o cast desse objeto.

G

Você está usando o enctype=“multipart/form-data”, então imagino que você esteja fazendo upload de arquivos para a servlet. Quando você fez isso, os dados não vão como um POST comum, eles vão como um MIME stream. Então você precisa decodificar a requisição para pegar os dados…

Da uma olhada na classe abaixo…
http://www.servlets.com/cos/javadoc/com/oreilly/servlet/multipart/MultipartParser.html

A

CARA! que loucura! era o enctype mesmo… Não sei porque definiram o form assim, mas depois que tirei isso, o problema se resolveu.
Muito obrigado pela ajuda moçada!

[]´s

Criado 11 de maio de 2009
Ultima resposta 14 de mai. de 2009
Respostas 5
Participantes 3