Caused by: javax.el.PropertyNotFoundException: Property 'product' not found on type java.lang.String

时间:2020-11-30 11:07:02

今天在JSP利用EL表达式取值报了 "javax.el.PropertyNotFoundException”,经过debug和打印将问题定位到这段代码:

Caused by: javax.el.PropertyNotFoundException: Property 'product' not found on type java.lang.String

HTML应该是没啥问题,看提示在java.lang.string类型上找不到属性“product”,应该是EL表达式哪里写错了,然后将图中EL表达式重新写了一遍:

Caused by: javax.el.PropertyNotFoundException: Property 'product' not found on type java.lang.String

然后神奇的不报错了,搞得我一脸蒙蔽,我将每段代码都比对了一下,没发现哪里不对,干就干彻底,替换每段代码测试,结果第一段替换进去就OK了

仔细检查了两段代码:

//报错代码
<c:forEach items="${order.orderItems } " var="orderItem">
//成功代码
<c:forEach items="${order.orderItems }" var="orderItem">

睁开我的钛合狗眼看了N遍,终于发现明明一样的代码,长度却不同。

再检查,细心又帅气的我发现第一段代码在EL表达式的花括号“}”结尾双引号中间多了个空格

Caused by: javax.el.PropertyNotFoundException: Property 'product' not found on type java.lang.String

这里是不能有空格的

这玩意浪费我两小时的时间去排查,写代码的时候一定要细心细心再细心!