requestScope表示從request範圍內取得.
其餘的還有sessionScope, pageScope和applicationScope,分別對應4種屬性範圍.
而若是直接寫${password} 表示從四種屬性範圍順序查找.html
${} 是一種取值簡寫的方式。
requestScope 是在請求的範圍內
password 是一個屬性
以上 ${requestScope.password }表示
從request的範圍內取一個屬性爲password的值,
和getParameter相似但不同,password的值 術語上是屬性,用attribute表示
attribute和parameter是不一樣的。
parameter是表單提交的時候,加的「參數」。而不是「屬性」
這個問題很簡單,你已經把這個對象保存到Session裏面頁面你這樣java
1
|
${ sessionScope.admin.nickname }
|
直接點屬性名,不能用get方法。session
但願採納!app
EL表達式獲取對象屬性的原理是這樣的:
以表達式${user.name}爲例
EL表達式會根據name去User類裏尋找這個name的get方法,此時會自動把name首字母大寫並加上get前綴,一旦找到與之匹配的方法,El表達式就會認爲這就是要訪問的屬性,並返回屬性的值。spa
因此,想要經過EL表達式獲取對象屬性的值,那麼這個屬性就必須有與之對應的get方法。.net
其實你要了解EL表達式的運行原理,它其實後臺也對應的Java代碼,
它會先將你EL表達式中的對象屬性的首字符大寫,拼成getXX()方法,
而後利用反射將對象構建出來,而後再執行getXX()方法,
因此這中間不關私有屬性的事,調用的是私有屬性的get/set方法。
若是你不寫get/set方法,那EL表達式就拿不到值了。set方法是給你後臺設置值用的。code