IF no JSP

Bom Dia pessoal,

Estou com dúvida para fazer um if… Esse é o fim… um if…rsrs
É o seguinte, tenho uma página jsp que irá verificar o perfil do usuário para exibir uma msg.
O problema é que ela nao verifica corretamente…

Fiz assim:

if (session.getAttribute(“perfil”) != “adm”) {
out.println(“Não sou adm”);
} else {
out.println(“Sou adm”);
}

Mas não funciona!!! No bd esta adm e ele não faz essa comparãção… Como devo fazer?

Pessoal me ajudem pleaseee

=)

Ellensmp, vc conhece JSTL? Expression Language (EL)? MVC?

Se não conhece dá uma procurada aí pra saber o que é.

Assim vc consegue eliminar Scriptlets (que não são nada bonitos) da sua página.

Dá umna googlada aí que vc acha mta informação sobre o assunto.

Tem o livro, Use a Cabeça: JSP & Servlets que tbm eh mto bom para vc entender isso.

Flw

[quote=Foxlol]Ellensmp, vc conhece JSTL? Expression Language (EL)? MVC?

Se não conhece dá uma procurada aí pra saber o que é.

Assim vc consegue eliminar Scriptlets (que não são nada bonitos) da sua página.

Dá umna googlada aí que vc acha mta informação sobre o assunto.

Tem o livro, Use a Cabeça: JSP & Servlets que tbm eh mto bom para vc entender isso.

Flw[/quote]

JSTL e Expression Language não conheço mas MVC sim.

Gostaria de saber pq não funciona esse if no meu jsp.

Tenho o livro Use a cabeça JSP e servlets mas estou em meu trabalho e preciso de ajuda com isso.

fala ae cara, blz?

então em algum momento, qdo vc recupera o valor de perfil no db vc coloca ele na sessão?
por exemplo…

String admin = "adm";
session.setAttribute("perfil", admin);

e no caso do seu segundo if, não funcinou pq para comparar objetos vc não pode utilizar o comparador ‘==’, pq senão ele vai comparar a referencia dos objetos, teria q ser assim

String admin = "admin";
if(admin.equals("admin")) {
  System.out.println("sou admin :)");
else {
  System.out.println("não sou admin :(");
}

abraços

[quote=carlox]fala ae cara, blz?

então em algum momento, qdo vc recupera o valor de perfil no db vc coloca ele na sessão?
por exemplo…

String admin = "adm";
session.setAttribute("perfil", admin);

e no caso do seu segundo if, não funcinou pq para comparar objetos vc não pode utilizar o comparador ‘==’, pq senão ele vai comparar a referencia dos objetos, teria q ser assim

String admin = "admin";
if(admin.equals("admin")) {
  System.out.println("sou admin :)");
else {
  System.out.println("não sou admin :(");
}

abraços[/quote]

Sim… esse perfil fica em uma variavel de sessao.
Quem o coloca na variavel de sessao é uma classe que conecta no bd (esse perfil vem do bd) e o jsp pega essa variavel de sessao pra tentar fazer um if mas ai que esta… nao consigo.
Oq vc me disse foi que a variavel de sessao é um objeto e este não pode ser comparado com outras coisas a nao ser um objeto tbm?
Que não posso fazer:
if (session.getAttribute(“perfil”) != “adm”) {…}
Então como ficaria?

[quote=Ellensmp][quote=carlox]fala ae cara, blz?

então em algum momento, qdo vc recupera o valor de perfil no db vc coloca ele na sessão?
por exemplo…

String admin = "adm";
session.setAttribute("perfil", admin);

e no caso do seu segundo if, não funcinou pq para comparar objetos vc não pode utilizar o comparador ‘==’, pq senão ele vai comparar a referencia dos objetos, teria q ser assim

String admin = "admin";
if(admin.equals("admin")) {
  System.out.println("sou admin :)");
else {
  System.out.println("não sou admin :(");
}

abraços[/quote]

Sim… esse perfil fica em uma variavel de sessao.
Quem o coloca na variavel de sessao é uma classe que conecta no bd (esse perfil vem do bd) e o jsp pega essa variavel de sessao pra tentar fazer um if mas ai que esta… nao consigo.
Oq vc me disse foi que a variavel de sessao é um objeto e este não pode ser comparado da forma que fiz pois compara a referencia e nao o valor?
Que não posso fazer:
if (session.getAttribute(“perfil”) != “adm”) {…}
Então como ficaria?[/quote]

Como vou fazer entao para comparar uma variavel de sessao com um texto?

fala ae, agora q vi tb direito uhauhauhauha

cara se vc coloca uma String na sua sessão eh soh fazer um cast e boa!

String perfilSessao = (String) session.getAttribute("perfil");
if (perfilSessao.equals("adm")) { 
out.println("Não sou adm"); 
} else { 
out.println("Sou adm"); 
} 

acho q agora vai :smiley:

[quote=carlox]fala ae, agora q vi tb direito uhauhauhauha

cara se vc coloca uma String na sua sessão eh soh fazer um cast e boa!

String perfilSessao = (String) session.getAttribute("perfil");
if (perfilSessao.equals("adm")) { 
out.println("Não sou adm"); 
} else { 
out.println("Sou adm"); 
} 

acho q agora vai :D[/quote]

IXi, deu erro…

org.apache.jasper.JasperException: Unable to compile class for JSP

[quote=Ellensmp][quote=carlox]fala ae, agora q vi tb direito uhauhauhauha

cara se vc coloca uma String na sua sessão eh soh fazer um cast e boa!

String perfilSessao = (String) session.getAttribute("perfil");
if (perfilSessao.equals("adm")) { 
out.println("Não sou adm"); 
} else { 
out.println("Sou adm"); 
} 

acho q agora vai :D[/quote]

IXi, deu erro…

org.apache.jasper.JasperException: Unable to compile class for JSP[/quote]

CARAMBA!!! Como faço para comparar uma variavel de sessao com um texto em jsp???

Pessoal,

Foi resolvido… Ficou assim:

if (session.getAttribute(“perfil”).equals(“adm”)) {
out.printl(“Sou adm”);
} else {
out.printl(“Não sou adm”);
}

Obrigada a todos que me ajudaram!!!