本文主要是介绍对于@javax.el.PropertyNotFoundException: Property [xxx] not readable on type 该异常可能出现的问题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
对于 @javax.el.PropertyNotFoundException: Property [xxx] not readable on type 该异常可能出现的问题
Property [xxx] not readable中文很好理解,为[xxx]该属性不可读
<c:forEach items="${studentsInfo}" var="student"> <tr> <td>${student.studentId}</td> <td>${student.stuName}</td> <td>${student.stuAge}</td> </tr> </c:forEach>
具体前端代码可能如上
错误原因1:get方法问题
通常我们会使用上述方法在前端进行后台数据的调用,而使用该el表达式访问对象属性时实质是系统在${student.studentId}该位置处调用了该实体类对象的getStudentId()方法,也就是get方法。所以导致该异常的可能原因是get方法处出现问题。get方法中的返回值,或者方法参数内设有参数都会导致该方法在调用时出错。当然通常get,set方法我们都会用系统直接快速设置,所以该原因导致出错的可能比较小。此时应该检查bean包内的实体类中的该属性的get方法是否有错误。
错误原因2:get方法的权限问题
如果将get方法的访问权限设置为private私有属性也会导致前端在调用该方法时无法使用而出现问题,所以此时应该将private改为public。
错误原因3:实体类权限问题
由于el表达式获取属性的方式是调用该对象的该属性的get方法,如${student.studentId},则是调用student对象的getStudentId方法,如果student对象类的权限设置为private,也将导致el表达式无妨访问该对象而出现异常。如果实体类的权限没有写,那么系统会默认为该类设置为默认即default权限,此时还是同样会在访问时出错,不过通常情况下,该情况可能在web项目运行时报错,因为其他包中的类要建立实体类对象时就会因为得不到权限而报错。所以应将实体类,即bean的权限改为public。
最后说明一下@javax.el.PropertyNotFoundException: Property [xxx] not readable on type和
@javax.el.PropertyNotFoundException: Property [xxx] not found on type是两种不同的异常。
出现not found的原因一般和not readable不同。
这篇关于对于@javax.el.PropertyNotFoundException: Property [xxx] not readable on type 该异常可能出现的问题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!