Javascript no Servlet

1 resposta
tathy.vip

Tem alguma maneira de chamar uma função javascript dentro de um servlet?

Por exemplo, tenho uma lista de contatos, quando eu seleciono o contato aparece um div com os detalhes do contato.
Dentro dessa div, tenho a opção “adicionar Email”… quando a seleciono, aparece outra div com um input para digitar o email e um botão de salvar…
Quando eu clico neste botão é chamada uma servlet chamada “AdicionaEmailServlet” segue o código dela:

package br.com.tathy.controller;

import java.io.IOException;
import java.sql.SQLException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import br.com.tathy.model.Contato;
import br.com.tathy.model.Email;
import br.com.tathy.model.EmailDAO;

public class AdicionaEmailServlet extends HttpServlet {

	private static final long serialVersionUID = 1L;

	@Override
	protected void service(HttpServletRequest req, HttpServletResponse res)
			throws ServletException, IOException {

		Email e = new Email();
		Contato c = new Contato();

		String email = req.getParameter("email");
		int idContato = Integer.parseInt(req.getParameter("idContato"));

		c.setIdContato(idContato);
		e.setEmail(email);
		e.setContato(c);

		try {
			EmailDAO dao = new EmailDAO();

			dao.adiciona(e, c);

		} catch (SQLException x) {
			throw new ServletException(x);
		}

		res.sendRedirect("listaContatoCSS.jsp");

	}

}

Estou redirecionando para a pégina que possui a lista, porém ela volta sem nenhum contato selecionado e eu gostaria que voltasse selecionado o contato para o qual eu fiz a inclusão do email… sendo assim, gostaria de chamar a função que exibe o div (que passa os parametros do contato) através dessa servlet… tem como fazer isso??

Desde já agradeço!

1 Resposta

ctosin

Isto que você quer fazer não é possível. O motivo é que o servlet está no servidor e o JavaScript está no cliente.

No entanto você pode colocar algum atributo na request e testar o valor desse atributo na tela da sua visualização para renderizar o HTML do jeito que você deseja. Você pode colocar a chamada da função JavaScript que você tem no fim da renderização da página, porque daí assim que a sua página for renderizada o JavaScript será chamado. E dentro do JavaScript você pode usar taglibs ou expressões do JSP (depende da tecnologia que você está usando na sua view) para testar o atributo que veio do servlet e selecionar o que você deseja.

Abraço

Criado 17 de dezembro de 2009
Ultima resposta 17 de dez. de 2009
Respostas 1
Participantes 2