Estou precisando de Ajuda!
Antes, session.putValue() e session.getValue() funcionavam normalmente, mas agora que eu criei uma classe, e chamo essas funções de dentro de algum método desta classe, da o seguinte erro: Attempt to use a non-final variable session from a different method. From enclosing blocks, only final local variables are available. Alguem poderia me explicar o que é isso?
Obrigado…
bem-vindo ao Portal Java, oq vc quer é bindar atributos na session? Pq não usa setAttribute() e getAttribute()? :roll:
Olá mateus, obrigado pelo ajuda…
‘bindar’ ? Não sei o que é isso… ![:cry: :cry:](https://www.guj.com.br/images/emoji/twitter/cry.png?v=6)
Dentro da classe, eu tenho um metodo que grava valores na session e outro que retorna esses valores… mas infelizmente eles não estão funcionando…
Mudei para setAttribute() e getAttribute(), mas não resolveu meu problema, continua dando o mesmo erro =(, o pior, é que session.setAttribute() e session.getAttribute() funcionavam quando estavam ‘soltos’ no script.jsp, mas agora que criei a classe… dá aquele erro :???:
Obrigado…
ta, perai, posta os teus códigos ai e mete uns comentários nos teus problemas pra facilitar pra gente :joia:
ntão vamos lá:
obs: desculpe qualquer ‘grosseria’ no código, estou mudando para JSP agora…
//arquivo classes.jsp contendo todas minhas classes
class Usuarios { //esta é a classe usuários o.O
//metodo para selecionar dados do usuário(nome, codigo)
private int selDadosUsr(String codUsr, Statement conBD) throws SQLException {
ResultSet resDUsr = conBD.executeQuery("SELECT cod_usuario, nome FROM alunos WHERE cod_usuario = '" + codUsr + "'");
if (resDUsr.first()){
String cod = resDUsr.getString("cod_usuario");
String nome_al = resDUsr.getString("nome");
session.setAttribute("ss_nome_al", nome_al); //e é aqui que dá o erro....
session.setAttribute("ss_cod_al", cod);
return 1;
}
else {
return 0;
}
}
}
obs: o arquivo classes.jsp é incluido em outros usando <%@include file=“class.jsp” %>
o erro que está aparecendo:
Generated servlet error:
C:\Arquivos de programas\Apache Tomcat 4.0\work\localhost\jsp\biblio\ProcAluno$jsp.java:156: Attempt to use a non-final variable session from a different method. From enclosing blocks, only final local variables are available.
session.setAttribute(“ss_nome_al”, nome_al);
Obrigado…
óh céus… cara, tu ta declarando essas classes dentro de <% %>??? Isso quer dizer q tu ta declarando classes internas de método, no caso, o método service() do Servlet gerado desse JSP… e ai tu ta tentando usar o objeto implicito session, q não é final dentro dessa classe interna de método e ele nao vai compilar por causa disso mesmo, regras de linguagem… oq eu te aconselho é tirar essas tuas classes desse jsp!!! Ou no mímino declara-las dentro de <%! %> e passar essa session como referencia aos métodos, sei lá, é horrivel do mesmo mas tu vai continuar usando jsp ehhehaeheahueauh
Sim, eu vou… heheheehhe ![:cool: :cool:](https://www.guj.com.br/images/emoji/twitter/cool.png?v=6)
Entendi algumas coisas… Como que faço pra declarar dentro do <%! %> ?
[quote=“valbaso”]Sim, eu vou… heheheehhe ![:cool: :cool:](https://www.guj.com.br/images/emoji/twitter/cool.png?v=6)
Entendi algumas coisas… Como que faço pra declarar dentro do <%! %> ?[/quote]
da mesma maneira q vc declarou dentro do <% %> … auehuae, é só colocar um “!” na tag… entenda q oq vc declara entre <%! %> vira atributos do servlet gerado, e oq vc declara dentro de <% %> vira código dentro do método service() do servlet gerado
Opa, valeu ae, fiz oque vc sugeriu, e funcionou perfeitamente… Obrigado
(obs: Eu não tinha cadastro, um colega tinha me emprestado o login)