org.apache.jasper.JasperException: javax.el.PropertyNotFoundException: Property [xxx] not readable o

因爲javaBean中的屬性是custFullName,因此在使用jsp的時候,經過el表達式獲取屬性的值<td>${m.CustFullName}</td>。可是加載頁面的時候報【javax.el.PropertyNotFoundException: Property [custFullName] not readable on type [com.aiwei.tdjk.entity.SaleOrderHeader]】,最終經過對比svn的代碼發現,應該使用<td>${m.custfullname}</td>,暫時不明白爲何會這樣。查到以下結論:java

EL表達式獲取對象屬性的原理是這樣的:
以表達式${user.name}爲例
EL表達式會根據name去User類裏尋找這個name的get方法,此時會自動把name首字母大寫並加上get前綴,一旦找到與之匹配的方法,El表達式就會認爲這就是要訪問的屬性,並返回屬性的值。
因此,想要經過EL表達式獲取對象屬性的值,那麼這個屬性就必須有與之對應的get方法。若是不寫get/set方法,那EL表達式就拿不到值了。set方法是給後臺設置值用的。
當el表達式首字母大寫,會判斷第二個字母大小寫,小寫,拋異常;大寫,則直接拼接get,造成getter方法
el表達式首字母小寫,會判斷第二個字母大小寫,大寫,必須第一個字母大寫;不然沒法獲取值若是el首字母大寫,至少第二個字母必須大寫。
相關文章
相關標籤/搜索