我在页面中用这样用<c:forEach>标签
<!--出错的写法 -->
<c:forEach items=" ${ XXX }" var="p">
${p.id }
</c:forEach>
一直报错: javax.el.PropertyNotFoundException: Property 'id' not found on type java.lang.String
然后我就纳闷了,明明不是string类型啊,整整用了几个小时去调试后台逻辑代码有没有写错。然后到最后发觉居然是
forEach标签中 items属性值多了个空格“ ${ XXX}” 应该是这样子的“${ XXX}”,当空格的时候它就将之当成string了。
不过调试过程中又有这样一个问题
我这样子写
<c:forEach items=" ${ XXX }" var="p">
${p}
</c:forEach>
没报错,并且输出的是改类型的信息。证明到这里它的类型是对的啊,那为什么获取属性的时候就变成了String了呢?这个估计得去看下源码才能知道了。