2012-12-10 30 views
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. 這些消息的原因是什麼,有時消失沒有原因?

回答

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) 
     ... 
    } 
%> 

和調用isLogged方法之前分配session目的是sess變量的基準。

e.g

<% 
sess=session; 
if(isLogged()){ 
    //code 
} 
%> 
+0

謝謝,但無論如何,我得到了同樣的問題。 – optimusfrenk

+0

看看編輯過的文章。 – adatapost

相關問題