2015-06-10 21 views
0

爲「電子郵件」的值設置爲使用是沒可能直接調用session.getAttribute()與EL?

session.setAttribute("email", "[email protected]"). 

以後要顯示值會話範圍內,下面的代碼被用於

<c:out value='${session.getAttribute("email")}'> </c:out>

這產生在屏幕上沒有輸出。請注意,必要的軟件包已導入,並且沒有產生錯誤。

不過,如果我使用小腳本重新寫:<% out.print(session.getAttribute("email")); %>,我得到我想要的輸出。使用EL表達式時

爲什麼不session.getAttribute()工作?

+0

可能重複[ JSTL得到會話對象(http://stackoverflow.com/questions/24225024/jstl-get-object-from-session) –

+0

爲什麼你想與橘子進行比較蘋果嗎?只需使用'$ {EMAIL}'(以及小寫字母那個笨拙的全大寫的名字)。而且,請不要將JSTL與EL混合使用。他們都完全不同。又見http://stackoverflow.com/tags/jstl/info和http://stackoverflow.com/tags/el/info – BalusC

+0

@BalusC你能解釋一下多一點對你不混合JSTL和EL的點?直到現在我都認爲它們是互補的。 –

回答

0

我的問題是爲什麼session.getAttribute()在使用 JSTL標籤時工作?

在通過EL一個jsp獲取會話屬性的正確方法是

<c:out value='${sessionScope.EMAIL}'/> 

你搞亂了JSTL & scriptlet代碼,你可以嘗試的

email: <%= session.getAttribute("EMAIL") %> 
+0

任何想法爲什麼我的解決方案不起作用? –

+0

更新了我的答案 – underdog

1

在EL您使用sessionScope對象像${sessionScope.EMAIL}訪問會話變量。

+0

太棒了!解決我的問題。但是隻是好奇,爲什麼我寫在JSTL標籤上的代碼不工作?問題在哪裏?據我所知,代碼中沒有任何錯誤。只是沒有輸出。 –

相關問題