Boa tarde,
o código abaixo é executado sob uma determinada condição. Se já existir um registro, devo interromper o fluxo e retornar à página de cadastro.
Como fazer isto?
Como colocar um alerta ‘javascript’ e retornar ( com ‘sendRedirect’ ou ‘forward’) ?
// Sql de procura
String sql = "SELECT ... FROM TB_... ";
sql_procura += "WHERE ID_PESSOA = " + id_pessoa;
PreparedStatement pst = null;
ResultSet rst = null;
try
{
pst = con.prepareStatement(sql_procura);
rst = pst.executeQuery();
if ( rst.first() )
{
// Alerta: redirecionar com 'forward' ou 'sendRedirect' ???
// javaScript ???
//response.sendRedirect("profissional.jsp");
}
Obrigado a quem puder ajudar.
kra, pra fazer isso aí do jeito vc quer, vc vai ter q escrever código html no servlet, oq não é recomendado, vc pode jogar um atributo no request falando para o jsp escrever o código do javascript e no lugar de response.sendRedirect vc teria que usar RequestDispatcher rd = request.getRequestDispatcher(“profisional.jsp”);
rd.foward(request, response);
[]'s
Tem que dar return no método também… Se não, o servlet continua sendo executado…
rst = pst.executeQuery();
if ( rst.first() )
{
// faz o que vc achar melhor
return;//se nao tiver esse return o método continua sendo executado..
}
Mas particularmente eu não gosto muito de fazer essas construções com return no meio do método não… Geralmente eu organizo para ficar mais elegante…
Legal,
mas ainda preciso emitir uma alerta ao usuário antes do ‘return’.
att,
Velho, vc não entendeu?
Não é possivel executar um código javascript no cliente antes de terminar a execução no servidor, ou seja, seu método do servlet vai ter q rodar primeiro, depois seu jsp, pra daí vc ter algo rodando no cliente.
Desculpe a ignorância meu velho…
Tô brincando de java baby ainda !
Valeu fera pela contribuição,
resolvido com a classe ‘RequestDispatcher’.
if ( rst.first() )
{
RequestDispatcher dispatcher = request.getRequestDispatcher("index.jsp");
request.setAttribute("duplicado", "Já existe um registro....");
dispatcher.forward(request, response);
return;
}