javax.el.PropertyNotFoundException: Property 'x...

被刻印的时光 ゝ 提交于 2021-01-06 13:52:19

严重: Servlet.service() for servlet jsp threw exception
javax.el.PropertyNotFoundException: Property 'staffNo' not found on type java.lang.String
at javax.el.BeanELResolver$BeanProperties.get(BeanELResolver.java:223)
at javax.el.BeanELResolver$BeanProperties.access$400(BeanELResolver.java:200)
at javax.el.BeanELResolver.property(BeanELResolver.java:311)
at javax.el.BeanELResolver.getValue(BeanELResolver.java:85)
at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:67)
at org.apache.el.parser.AstValue.getValue(AstValue.java:169)
at org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:189)
at org.apache.jasper.runtime.PageContextImpl.proprietaryEvaluate(PageContextImpl.java:985)
at org.apache.jsp.pages.statisticsManage.indexStatisticsReport1_jsp._jspx_meth_c_005fforEach_005f0(indexStatisticsReport1_jsp.java:248)
at org.apache.jsp.pages.statisticsManage.indexStatisticsReport1_jsp._jspService(indexStatisticsReport1_jsp.java:180)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:417)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:391)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:684)

最近超级郁闷,老遇到这个错误,错误的原因总结一下几点,最令我郁闷的是我的错误还不是靠一下正确的解决排错方式查询出来的。

页面:<c:forEach var="item" items="leaveStatisticsList" >
       <tr>
         <td >${item.staffNo}</td>

javax.el.PropertyNotFoundException: Property 'staffNo' not found on type java.lang.String首先根据错误翻译,能看出是el语言格式不对,属性staffNo属性找不到

出现的原因呢?

1.属性是private String staffNo;如果没有写getName和setName,所以就找不到,因为EL只会找public的方法来设值和获取值.(很小白的错误呢)

2.数据库中没有查到staffNo这个值

3.把<c:forEach items="" var="">中的items属性的值写错了,从而导致没有拿到值

一般是这几个错误原因

但是呢,我本人出现的这个原因就不是以上几种小白问题了。

首先我有一个页面是通过这个如此定义拿到值了,没有报错

我复制这个页面到另一个功能中去,添加了一些js功能,比如打印,或者减少增加了几个字段的显示后这个页面还能用,由于业务原因,我在原来的bean中去掉了staffNo,后来又加上了,但是就报这个错了

我把那个没报错的页面中的staffNo的el表达式复制粘贴到报错的这个页面中,就又不报错了(也许是缓存的原因)

但是现在呢,以上方法我都使用过了,结果还是报错,就因为我移植了一下项目到另一个电脑中,无关乎缓存,无关乎el表达式报错,无关乎以上各种解决办法,就是报这个错,郁闷之至啊!!

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!