Pessoal, estou com um proleminha aqui… o comando out.println simplesmente não mostra nada… Estou fazendo um sisteminha aqui que lista, insere, altera e exclui.
Pois bem, vamos aos códigos:
Alteração.jsp
<%
String matricula = request.getParameter(“id”); //pega o campo id do arquivo alterar.jsp
int Id = Integer.parseInt(matricula); // converte o campo para inteiro
String Nome = request.getParameter(“nome_alu”); //pega o campo nome_alu e o joga na variável Nome
String Turno = request.getParameter(“turno_alu”); //pega o campo turno_alu e o joga na variável Turno
ResultSet res = stm.executeQuery(“select * from alunos where id=”+Id); //seleciona os dados da tabelas alunos onde id=Id, que é o valor passado pelo arquivo alterar.jsp
if(res.next()) { //se há registros
String NomeAntigo = res.getString(“nome”); //pega o campo nome da tabela alunos (o nome que está para ser alterado) e o joga na variável NomeAntigo
String TurnoAntigo = res.getString(“turno”); //pega o campo turno da tabela alunos (o turno que está para ser alterado) e o joga na variável TurnoAntigo
if (NomeAntigo == Nome && TurnoAntigo == Turno) { //Aqui verifica se o usuário não alterou nada e mandou o formulário mesmo assim
out.println(“Você não alterou nenhum dado. Por favor, altere o nome ou o turno do aluno.” + “”); //Aqui não mostra a msg que deveria aparecer
out.println("<a href= “alterar.php”>" + “Voltar” + “”); //Aqui não mostra a msg que deveria aparecer
}
else
{
if ((NomeAntigo != Nome && TurnoAntigo == Turno) || (NomeAntigo == Nome && TurnoAntigo != Turno)) { //Se o usuário alterou algum dos campos
stm.executeUpdate(“update alunos set nome = '”+Nome+"’, turno = ‘"+Turno+"’ where id =’"+Id+"’"); //Faz a alteração
out.println(“Alteração efetuada com sucesso” + “”); //Aqui não mostra a msg que deveria aparecer
out.println("<a href = “index.php”>" + “Voltar” + “”); //Aqui não mostra a msg que deveria aparecer
}
}
}
%>
O que é esse arquivo? É o arquivo que faz a alteração dos campos da tabela propriamente dito. Eu pego os dados do arquivo alterar.jsp q são os novos dados que o usuário digitou para fazer a alteração dos campos (campos nome e turno) e os comparo com os dados já existentes da tabela (é como se fosse comparar o novo nome com o nome antigo). E faço o código p/ que ele verifque as seguintes condições: Se o usuário ñ alterou nada mostra uma ação, se ele alterou, mostra outra ação. Mas o estranho, é que não tá mostrando a saída do println Não mostra erro nem nada. Só aparece td branco… Fiz esse mesmo sisteminha no PHP e funfou beleza… pq não esta mostrando o print… onde esta o erro? Obrigado pessoal!!!
Tente escrever out.flush(); no final do seu código.
ops… errei no título, coloquei (out.prinltn), mas no código deixei certo (out.println) rs
Amigo, coloque o codigo dentro das tags CODE.
Sobre o seu problema vc debugou para saber se está entrando no IF ?
Outro detalhe utilize EQUALS para comparar Strings.
Abraço,
E ae Kuririn blz?.. Pô cara, tb não funfou. Ainda ñ mudou nada…
E ae Kuririn blz?.. Pô cara, tb não funfou. Ainda ñ mudou nada…[/quote]
Não deve ter funcionado pois você não deve ter seguido o conselho do colega vinnymaran
Você está comparando valores dos teus objetos string com == ao invés do método equals
String a = "teste";
String b = "teste";
System.out.println(a == b);
System.out.println(a.equals(b));
Tente isso:
<%
String matricula = request.getParameter("id"); //pega o campo id do arquivo alterar.jsp
int Id = Integer.parseInt(matricula); // converte o campo para inteiro
String nome = request.getParameter("nome_alu"); //pega o campo nome_alu e o joga na variável Nome
String turno = request.getParameter("turno_alu"); //pega o campo turno_alu e o joga na variável Turno
ResultSet res = stm.executeQuery("select * from alunos where id=" + Id); //seleciona os dados da tabelas alunos onde id=Id, que é o valor passado pelo arquivo alterar.jsp
if (res.next()) { //se há registros
String nomeAntigo = res.getString("nome"); //pega o campo nome da tabela alunos (o nome que está para ser alterado) e o joga na variável NomeAntigo
String turnoAntigo = res.getString("turno"); //pega o campo turno da tabela alunos (o turno que está para ser alterado) e o joga na variável TurnoAntigo
if (nomeAntigo.equals(nome) && turnoAntigo.equals(turno)) { //Aqui verifica se o usuário não alterou nada e mandou o formulário mesmo assim
out.println("Você não alterou nenhum dado. Por favor, altere o nome ou o turno do aluno." + "<p>"); //Aqui não mostra a msg que deveria aparecer
out.println("<a href= \"alterar.php\">" + "Voltar" + "</a>"); //Aqui não mostra a msg que deveria aparecer
}
else {
if ((!nomeAntigo.equals(nome) && turnoAntigo.equals(turno)) || (nomeAntigo.equals(nome) && !turnoAntigo.equals(turno))) { //Se o usuário alterou algum dos campos
stm.executeUpdate("update alunos set nome = '" + nome + "', turno = '" + turno + "' where id ='" + Id + "'"); //Faz a alteração
out.println("Alteração efetuada com sucesso" + "<p>"); //Aqui não mostra a msg que deveria aparecer
out.println("<a href = \"index.php\">" + "Voltar" + "</a>"); //Aqui não mostra a msg que deveria aparecer
}
}
}
out.flush();
out.close();
%>
Dicas:
- use [cote] para formatar códigos aqui no forum
- conforme vinnymaran também já disse: user equals para comparar strings (como foi feito acima)
- não programe em java assim, se for pra fazer até acesso ao banco no JSP é melhor continuar usando php, esse tipo de sistema em java não vinga, por isso que existem tantos padrões java.
[quote]Sobre o seu problema vc debugou para saber se está entrando no IF ?
Outro detalhe utilize EQUALS para comparar Strings.[/quote]
Então, estou usando Eclipse e ja fiz outras paginas e ta td rodando blz… só essa aí q ta dando esse problema. Aliás, nem aparece erro, mas tb não aparece nada, nem o println que deveria aparecer… Sobre esse lance de debugar isso é relevante? Eu tentei aqui no Eclipse mas deu umas msginhas esquisitas… acho q isso ñ tem importancia.
Obrigado amigos… mais alguma ajuda?
E ae galera… pô mudei o código, coloquei o EQUALS, o outflush e outclose mas mesmo assim, continua o mesmo problema : tela branca rs… não sai nada
Aí o novo código
[code]%@ page language=“java” contentType=“text/html”
pageEncoding=“UTF-8”%>
<%@ page import=“java.sql."%>
<%@ page import="java.util.”%>
<%@ include file=“conexao.jsp” %>
<%
String matricula = request.getParameter(“id”); //pega o campo id do arquivo alterar.jsp
int Id = Integer.parseInt(matricula); // converte o campo para inteiro
String Nome = request.getParameter(“nome_alu”); //pega o campo nome_alu e o joga na variável Nome
String Turno = request.getParameter(“turno_alu”); //pega o campo turno_alu e o joga na variável Turno
ResultSet res = stm.executeQuery(“select * from alunos where id=”+Id); //seleciona os dados da tabelas alunos onde id=Id, que é o valor passado pelo arquivo alterar.jsp
if(res.next()) { //se há registros
String NomeAntigo = res.getString(“nome”); //pega o campo nome da tabela alunos (o nome que está para ser alterado) e o joga na variável NomeAntigo
String TurnoAntigo = res.getString(“turno”); //pega o campo turno da tabela alunos (o turno que está para ser alterado) e o joga na variável TurnoAntigo
if (NomeAntigo.equals(Nome) && TurnoAntigo.equals(Turno)) { //Aqui verifica se o usuário não alterou nada e mandou o formulário mesmo assim
out.println(“Você não alterou nenhum dado. Por favor, altere o nome ou o turno do aluno.” + “
”); //Aqui não mostra a msg que deveria aparecer
out.println("<a href= “alterar.php”>" + “Voltar” + “”); //Aqui não mostra a msg que deveria aparecer
}
else
{
if ((NomeAntigo != Nome && TurnoAntigo == Turno) || (NomeAntigo == Nome && TurnoAntigo != Turno)) { //Se o usuário alterou algum dos campos
stm.executeUpdate(“update alunos set nome = '”+Nome+"’, turno = ‘"+Turno+"’ where id =’"+Id+"’"); //Faz a alteração
out.println(“Alteração efetuada com sucesso” + “
”); //Aqui não mostra a msg que deveria aparecer
out.println("<a href = “index.php”>" + “Voltar” + “”); //Aqui não mostra a msg que deveria aparecer
}
}
}
out.flush();
out.close();
%>
[/code]
Opa… agora apareceu aqui… mas ainda há alguns erros… bom só p/ avisar q a situação esta se normalizando… vou terminar de arrumar aqui as pendencias que faltam