Botao para chamar servlet de uma jsp ou javascript

6 respostas
A

Pessoal,

Tenho uma jsp, que tem um botao deste tipo:

<td>
 <a href="<c:url value="pasta/send?" >
 <c:param name="teste" value="${row.empresa}" />
 </c:url>">
<img src="teste/picture.jpg" width="10" heigth="20"/> </a>
</td>

Preciso chamar minha servlet atraves de um botao, andei vendo na net, mas uns dizem q é só usar um botao simples outros tem que usar javascript com os parametros.

Voce podem me dar uma luz ?

obrigado

6 Respostas

drsmachado

Este é um link, correto (tag )?
Bem, não há nada de especial em chamar um servlet, se você está utilizando tags html, pode utilizar <form action="path/nomeDaServlet" method"metodoQueQuiser"> <input type="submit"> ou usar javascript para controlar o evento, a escolha é tua.

A

Opa, grato pela ajuda…

No caso do javascript, vc tem algum exemplo ?

drsmachado

Via get fica assim:

function redireciona(param){
  location.href=param;
}

Onde param é o nome da servlet:

<input type="button" onClick="redireciona('NomeDaServlet');">

Além do nome da servlet, é possível passar parâmetros adicionais:

function redireciona(param, nomeDoCampo, valorASerPassado){
  location.href=param+"?"+nomeDoCampo+"="+valorASerPassado;
}

assim

<input type="button" onClick="redireciona('NomeDaServlet','nomeDoParametro', 'valorASerPassado');">

Dá uma olhada no guj, sempre tem várias coisas sobre javascript

A

Entao smachado,

Eu tentei implementar os exemplos que deu, mas ele me retorna null

<td>
 <a href="<c:url value="pasta/send?" >
 <c:param name="teste" value="${row.empresa}" />
 </c:url>">
<img src="teste/picture.jpg" width="10" heigth="20"/> </a>
</td>

Vai ser apresentado uma tabela com varios registros(conforme abaixo)

<td><c:out value="${row.id}"/></td>
                                        <td><c:out value="${row.nome}"/></td

Quando eu clico, ele deveria enviar os dados do registro escolhido para meu servlet gravar isso no BD, mas deu nulo

drsmachado

Testou se ele vai até a servlet?
Percebo que teu código possui aspas duplas dentro de aspas duplas:

<a href="<c:url value="pasta/send?" >

Quando precisar disto, use o caractere de escape “”, desta forma?

<a href="<c:url value=\"pasta/send?\" >

Pode ser a causa do problema…

A

tudo blz?

Eu fiz como me falou, quando eu clico no botao para fazer o download, ele abre a tela normal para salvar, mas o infeliz nao salva no banco !!!

Criado 3 de fevereiro de 2011
Ultima resposta 7 de fev. de 2011
Respostas 6
Participantes 2