javax.el.PropertyNotFoundException: Property ‘XXX‘ not found on type xx.xx.xx.xx问题解决(el表达式))

javaweb项目的时候,遇到了javax.el.PropertyNotFoundException: Property 'XXX' not found on type xx.xx.xx.xx报错,困扰了好长时间,也是最后找了好多资料才明白了这个解决方法。

报错:


javax.el.PropertyNotFoundException: 在类型 [com.chiaki.book.bean.Contract] 上未找到属性 [ConLandlord]
	javax.el.BeanELResolver$BeanProperties.get(BeanELResolver.java:249)
	javax.el.BeanELResolver$BeanProperties.access$300(BeanELResolver.java:201)
	javax.el.BeanELResolver.property(BeanELResolver.java:322)
	javax.el.BeanELResolver.getValue(BeanELResolver.java:83)
	org.apache.jasper.el.JasperELResolver.getValue(JasperELResolver.java:124)
	org.apache.el.parser.AstValue.getValue(AstValue.java:168)
	org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:189)
	org.apache.jasper.runtime.PageContextImpl.proprietaryEvaluate(PageContextImpl.java:692)
	org.apache.jsp.contract_005flist_jsp._jspx_meth_c_005fforEach_005f0(contract_005flist_jsp.java:308)
	org.apache.jsp.contract_005flist_jsp._jspService(contract_005flist_jsp.java:199)
	org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:764)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:466)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:379)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:327)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:764)
	org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
	com.enjoy.book.filter.UserLoginFilter.doFilter(UserLoginFilter.java:30)

对应的属性命名为ConLandlord,使用了驼峰命名法,但实际上el表达式不能检测这样的命名,应当全部改成小写字母。

改完后发现仍然失效,有可能还有其他原因

在这里插入图片描述
在经过测试后发现,bean里的属性类需要重新用idea生成gettersetter,还有toString方法。
这里是因为刚开始是idea自动生成的方法,我们在修改属性后,方法的命名没有变化,导致仍然识别错误。

附:也有可能的原因是格式错误:

标准的el表达式如下:

<c:forEach items="${列名}" var="mgr">
	    <option value="${mrg.emId }">${mgr.realName}</option>
</c:forEach>

注意很可能能是少了${},或者格式出现错误

猜你喜欢

转载自blog.csdn.net/qq_51594676/article/details/126789754