1. 程式人生 > >EL表示式獲取屬性時所做的事情

EL表示式獲取屬性時所做的事情

這部分是轉的http://blog.csdn.net/wodet_t/article/details/47042435

EL表示式獲取物件屬性的原理是這樣的:

以表示式${user.name}為例
EL表示式會根據name去User類裡尋找這個name的get方法,此時會自動把name首字母大寫並加上get字首,一旦找到與之匹配的方法,El表示式就會認為這就是要訪問的屬性,並返回屬性的值。

所以,想要通過EL表示式獲取物件屬性的值,那麼這個屬性就必須有與之對應的get方法。

其實你要了解EL表示式的執行原理,它其實後臺也對應的Java程式碼,
它會先將你EL表示式中的物件屬性的首字元大寫,拼成getXX()方法,
然後利用反射將物件構建出來,然後再執行getXX()方法,
所以這中間不關私有屬性的事,呼叫的是私有屬性的get/set方法。
如果你不寫get/set方法,那EL表示式就拿不到值了。set方法是給你後臺設定值用的。

另外增加一些內容

就是屬性獲取可以用.和[""]兩種,如果你的屬性中帶下劃線,就不能用.來獲取了,只能通過[""] ,例如

emp屬性有empno emp_name

獲取時${emp.empno} ${emp["empno"]} ${emp["emp_name"]} 正確   ${emp.emp_name}錯誤