Refresh na Pagína!

E ae pessoal, sou novato no uso de JSP… e utilizando JavaBeans eu faço um cadastro simples! Usando o MySQL!

Nessa página, no form eu dou um post para ela mesma, ou seja, depois que cadastro os dados e clico no botão cadastrar eu chamo a mesma tela em branco (claro)!

[b]O PROBLEMA!
Se eu der um F5 na página em branco, ela cadastra os dados da página anterior de novo no BD!

Por que será que acontece isso??[/b]

[code]
<%@ page
import=“com.AgendarCompromissos”
%>

<jsp:useBean id=“objAgendar” class=“com.AgendarCompromissos” />[/code]

<form name="fComp" method="post" action="compromisso.jsp">
<%
if ((request.getParameter("btCadastrar") != null)){
	objAgendar.setAssunto(request.getParameter("edAssunto"));
	...
	...
	...
	out.print("" + objAgendar.gravar());
}
%>

Apos o cadastro, faca um redirect para outra pagina, assim se alguem der refresh, nao vai inserir os dados de novo.

Rafael

Mas tipo!

out.print("" + objAgendar.gravar());

O método gravar retornar uma String, que no caso seria uma String com o comando em JavaScript de um Alert contendo um suposto “cadastro efetuado com sucesso” ou um “erro de conexão com o BD”…

E efetuando o:

[code]

response.sendRedirect(“compromisso.jsp”);[/code]

O Script em JS não funciona!
Existe alguma outra alternativa?

Bom, “o script JS nao funciona” nao diz coisa alguma. O que acontece? aparece uma mensagem de erro de sintaxe invalida? fica tudo em braco? o browser explode?

Rafael

[quote=Rafael Steil]Bom, “o script JS nao funciona” nao diz coisa alguma. O que acontece? aparece uma mensagem de erro de sintaxe invalida? fica tudo em braco? o browser explode?

Rafael[/quote]

Ah! Tentando explicar melhor!


out.print("" + objAgendar.gravar());
response.sendRedirect("cadastrar_compromisso.jsp");

O método gravar() retorna um String contendo:
“”

Como está dentro de um out.print() ele imprime o código JS no código na página… daí assim que ele imprimi ele automaticamente o executa… exibindo o Alert(Cadastro Efetuado com Sucesso);

Mas ao adiciona o sendRedirect após o out.print() o alert não é exibido!

Faz assim:

 "<script>alert('Cadastro Efetuado com Sucesso!');document.location = 'cadastrar_compromisso.jsp';</script>" 

Rafael

[quote=Rafael Steil]Faz assim:

 "<script>alert('Cadastro Efetuado com Sucesso!');document.location = 'cadastrar_compromisso.jsp';</script>" 

Rafael[/quote]

Poh, Rafael… funcionou!

Valeu cara… obrigado!