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:
V
valbasoPJ
Olá mateus, obrigado pelo ajuda…
‘bindar’ ? Não sei o que é isso…
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…
M
matheusPJ
ta, perai, posta os teus códigos ai e mete uns comentários nos teus problemas pra facilitar pra gente :joia:
V
valbasoPJ
ntão vamos lá:
obs: desculpe qualquer ‘grosseria’ no código, estou mudando para JSP agora…
//arquivo classes.jsp contendo todas minhas classesclassUsuarios{//esta é a classe usuários o.O//metodo para selecionar dados do usuário(nome, codigo)privateintselDadosUsr(StringcodUsr,StatementconBD)throwsSQLException{ResultSetresDUsr=conBD.executeQuery("SELECT cod_usuario, nome FROM alunos WHERE cod_usuario = '"+codUsr+"'");if(resDUsr.first()){Stringcod=resDUsr.getString("cod_usuario");Stringnome_al=resDUsr.getString("nome");session.setAttribute("ss_nome_al",nome_al);//e é aqui que dá o erro....session.setAttribute("ss_cod_al",cod);return1;}else{return0;}}}
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…
M
matheusPJ
ó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
V
valbasoPJ
Sim, eu vou… heheheehhe
Entendi algumas coisas… Como que faço pra declarar dentro do <%! %> ?
M
matheusPJ
“valbaso”:
Sim, eu vou… heheheehhe
Entendi algumas coisas… Como que faço pra declarar dentro do <%! %> ?
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