Abrir Servlet no POPUP! URGENTE!

7 respostas
P

Bom dia a todos,

Tenho um popup que é um cadastro de clientes.
Neste popup tenho os campos do meu cadastro e um botão gravar.
Quando clico em gravar, chamo o Servlet que realiza os processos de gravação.

O problema é que quando eu chamo o servlet através do POPUP, ele abre uma nova janela.

Gostaria de saber como faço para depois de eu gravar, o servlet contunuar sendo chamado dentro do popup.

Obrigado!

PW2

7 Respostas

B

como vc esta chamando este servlet ? pelo action do form ou por função java script?

P

Tenho no meu JSP um botão com Action = “./MeuServlet”

Quando clico no botão ele chama o servlet e executa certinho a minha gravação e da uma mensagem de “Cadastrado com Sucesso.”
O que eu quero é que quando eu clicar no botão ele execute o Servlet e mostre a mensagem no mesmo popup do cadastro.

Abraços!

J

Sinceramente acredito que deveria ter um filtro impedindo a visualização de topicos com “Urgente” ou escrito inteiro com letras maiusculas para destaque.

Agora da duvida, em um trabalho escolar lembro de ter feito algo semelhante, mas o servlet continuava a execução no popup/janela aberta, não chamando outro.
Da uma olhada em comportamento javascript associado a action, pode ser de lá esse comportamento.

W

mostre o código do jsp.

não esqueça da tag code.

P

Abaixo o meu JSP que está sendo aberto dentro do POPUP. É um cadastro de sistemas.

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Cadastro de Sistemas</title>
</head>
<body>
<form method="post" action="./SistemaAction"><b>Cadastro de Sistemas
</b><br><br>Descrição do Sistema<br><input style="height: 21px; width: 268px" name="edtDscSistema"><br><br>
<input type="submit" value="Gravar">
</form>
</body>
</html>

Abaixo o meu código do Servlet que é chamado.

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

		Session session = new ConexaoBD().getConexao();
		SistemaDAO sistemaDAO = new SistemaDAO(session);
		Sistema objSistema = new Sistema();
		objSistema.setDsc_sis(request.getParameter("edtDscSistema"));
		sistemaDAO.Salvar(objSistema);
		
		response.setContentType("text/html");  
		PrintWriter out = response.getWriter();  
		
		out.println("<html>");
		out.println("<body>");
		out.println("Cadastrado com Sucesso");
		out.println("</body>");
		out.println("</html>");
	}

Quando clico em gravar no popup ele abre uma outra tela com o "Cadastrado com Sucesso". Gostaria que o resultado so Servlet fosse aberto no mesmo POPUP.

Obrigado!

W

como você faz a chamada da página de cadastro para abrir em outra janela?

fiz um teste aqui e não tive problemas.

veja como eu fiz:

index.jsp

&lt;%@ page contentType="text/html" pageEncoding="UTF-8" %&gt;
&lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
	"http://www.w3.org/TR/html4/loose.dtd"&gt;
&lt;html&gt;
	&lt;head&gt;
		&lt;meta http-equiv="Content-Type" content="text/html; charset=UTF-8"&gt;
		&lt;title&gt;Teste&lt;/title&gt;
	&lt;/head&gt;
	&lt;body&gt;
		&lt;h1&gt;Teste!&lt;/h1&gt;
		<a>Cadastro</a> &lt;!-- abro a tela de cadastro em outra janela usando href="window.open('cadastro.jsp')" --&gt;
	&lt;/body&gt;
&lt;/html&gt;
cadastro.jsp
&lt;%@ page contentType="text/html" pageEncoding="UTF-8" %&gt;
&lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
	"http://www.w3.org/TR/html4/loose.dtd"&gt;
&lt;html&gt;
	&lt;head&gt;
		&lt;meta http-equiv="Content-Type" content="text/html; charset=UTF-8"&gt;
		&lt;title&gt;Teste - Cadastro&lt;/title&gt;
	&lt;/head&gt;
	&lt;body&gt;
		&lt;h1&gt;Teste - Cadastro&lt;/h1&gt;
		&lt;form action="cadastrar" method="post"&gt;
			Teste: &lt;input name="teste" type="text"&gt;<br>
			&lt;input type="submit" value="Cadastrar"&gt;
		&lt;/form&gt;
	&lt;/body&gt;
&lt;/html&gt;
Cadastrar.java
package teste;

import java.io.*;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.*;

@WebServlet("/cadastrar")
public class Cadastrar extends HttpServlet {
    private static final long serialVersionUID = 4129273033550352803L;

    protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        response.setContentType("text/html");
        PrintWriter out = response.getWriter();
        out.println("&lt;html&gt;");
        out.println("\t&lt;body&gt;");
        out.println("\t\tCadastrado.");
        out.println("\t&lt;/body&gt;");
        out.println("&lt;/html&gt;");
    }
}
P

No meu caso, o Cadastrado com sucesso é abaero em outra página. Queria que ele fosse aberto no mesmo POPUP que já está aberto.
Meu popup é aberto a partir de um link.

<a href=javascript:abrir('FrmCadastroSistemas.jsp');>Cadastrar Sistemas</a>
Criado 13 de janeiro de 2011
Ultima resposta 13 de jan. de 2011
Respostas 7
Participantes 4