1

我开始学习jsp应用程序,有时我收到错误消息“无法解决...”。例如,这是我的最后一份报告:

An error occurred at line: 118 in the jsp file: /functions.jsp
session cannot be resolved
115:             
116:     Boolean isLogged()
117:         {
118:             Boolean loginSuccess = (Boolean)session.getAttribute("myApp.loginSuccess");
119:             if (loginSuccess == null) 
120:             {
121:                 return false;

这些行引用了一个函数,用于检查登录过程是否成功。所以我有两个问题:

  1. 在这种情况下我该如何解决问题?
  2. 这些消息的原因是什么,有时会无缘无故地消失?
4

1 回答 1

2

您需要转换getAttribute()方法的返回值。

Boolean loginSuccess = (Boolean)session.getAttribute("myApp.loginSuccess");

您不能将implicit对象变量直接用于方法体(声明)。您应该避免在 JSP (声明、Scriptlet 和表达式)中使用Java 代码。或者,您可以使用使用Servlet/Filter

HttpSession要解决此问题,请在声明块中声明一个引用变量。

<%!
  HttpSession sess;

  Boolean isLogged(){
     Boolean loginSuccess = (Boolean)sess.getAttribute("myApp.loginSuccess");
     if (loginSuccess == null) 
        ...
  }
%>

并在调用方法之前将session对象的引用分配给变量。sessisLogged

例如

<%
 sess=session;
 if(isLogged()){
   //code
 }
%>
于 2012-12-10T11:30:59.313 回答