关于el表达式foreach找不到对象属性的问题

java报错--Property 'xxx' not found on type 包名.类名

<c:forEach items="${requestScope.customers}" var="cust">
	<tr>
		<c:out value="${cust.name}"></c:out>
	</tr>
</c:forEach>

发现找不到cust里的属性

Property [Name] not found on type [com.zrj.domain.Customer]

意思就是找不到Customer里的Name属性

网上找一些答案,java报错–Property ‘xxx’ not found on type 包名.类名
说是类里的get方法大小写有问题我全部删除重新快捷键创建然而还是不行,在折腾了一段时间后查看了el中对获取对象属性的解释:

以表达式${book.isbn}为例
EL表达式会根据isbn去Book类里寻找这个isbn的get方法,此时会自动把isbn首字母大写并加上get前缀,一旦找到与之匹配的方法,El表达式就会认为这就是要访问的属性,并返回属性的值。

可是我的Name已经是大写了啊( ・´ω`・ )
于是试了下改成小写的name
然后就可以了(╯°Д°)╯︵┻━┻
注意哦我这里对象属性名依然是Name,el中写Cust.Name是不可以的,只有写小写的name才可以.不清楚是什么原因.
不管是为什么,还是建议大家要按照命名规范把对象名首字母改为小写的,避免这样无厘头的麻烦呢(≖ᴗ≖)✧

你可能感兴趣的:(关于el表达式foreach找不到对象属性的问题)