Out.prinltn não mostra nada

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