1. 程式人生 > >【原創】在JSTL 標籤中遇到的c:foreach問題

【原創】在JSTL 標籤中遇到的c:foreach問題

 在應用jstl標籤c:foreach中遇到了一個這樣的問題:

[Servlet Error]-[action]: javax.servlet.jsp.JspException: An error occurred while evaluating custom action attribute "value" with value "${claim.cLtNum}": Unable to find a value for "cLtNum" in object of class "com.data.Claim" using operator "." (null)

*******字面的意思是:沒有找到cLtNum物件********

經調查發現,出現這種問題的原因如下:
 在jstl標籤中,進行c:foreach動作時進行如下操作:

<c:foreach item="${claimList} var="claim">
<tr><td nowrap class="aTabletitle3" align="center">
      
<div align="center">
       
<c:out value="${claim.cLtNum}"/>
       
</div>
</td></tr>
</c:foreach>

此時,jstl就會去遍歷claimList資訊,並把資訊儲存在單一物件claim中,接著在"${claim.cLtNum}" 中它會查詢claim的getCLtNum()方法,去獲得cLtNum的資訊。
 
可是奇怪的是在jstl中對域的寫法要求很嚴,出一點問題都會報錯,現在就是出錯造成的問題,錯誤在於cLtNum,
在javabean中定義域的規則不正確造成的,改為"private String cltNum"就沒有問題了,同理如果是CltNum一樣會報錯的。javaBean域的命名規則必須確保第一個字母和第二個字母必須為大寫時才有效,否則,進行c:foreach都會報錯!
 
切記切記........