【原创】在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都会报错!
 
切记切记........

你可能感兴趣的:(c,null,存储,action,div)