我开始学习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;
这些行指的是一个检查登录过程是否成功的函数。所以我有两个问题:
答案 0 :(得分:2)
您需要转换getAttribute()
方法的返回值。
Boolean loginSuccess = (Boolean)session.getAttribute("myApp.loginSuccess");
您不能将implicit
对象变量直接用于方法体(声明)。您应该avoid Java code in JSPs(声明,Scriptlet和表达式)。或者,您可以使用Servlet/Filter。
要解决此问题,请在声明块中声明HttpSession
的引用变量。
<%!
HttpSession sess;
Boolean isLogged(){
Boolean loginSuccess = (Boolean)sess.getAttribute("myApp.loginSuccess");
if (loginSuccess == null)
...
}
%>
并在调用session
方法之前将sess
对象的引用分配给isLogged
变量。
e.g
<%
sess=session;
if(isLogged()){
//code
}
%>