严重: Servlet.service() for servlet [jsp] in context with path [/JDBCbyDao] threw exception [An exception occurred processing JSP page /student.jsp at line 37 34: 35: 36:
37:
38:
${ student.id }
39:
${ student.name }
40:
${ student.password }
Stacktrace:] with root cause javax.el.PropertyNotFoundException: Property 'id' not found on type bean.Student at javax.el.BeanELResolver$BeanProperties.get(BeanELResolver.java:290) at javax.el.BeanELResolver$BeanProperties.access$300(BeanELResolver.java:243)
解决方案: 1.可能你遇到的错误是“Property 'id' not found on type java.lang.String”异常 它的意思是String类中没有id这个属性,而修改的方法就是: 修改成: 但是你需要注意它的错误是: java.lang.String对比type bean.Student,其中对应src/bean.Student.java文件。而且我在JSP中已经是${studentList}这种变量了,所以该方法不是该错误的解决方案。
2.有人说是bean的属性名称错误,或者没有get,set方法,但是我的bean如下方法。又参考错误“javax.el.PropertyNotFoundException: Property 'pNum' not found on type com.manager.Paper”,此时的解决方案是: private int pNum; private int pSize; 建议你将这两个属性的名称换下 private int pnum; private int psize; 据说是应为命名规范,同时stu.EmpNo估计是大小写错了,换成 ${stu.empNo} 就能成功,因为EL是读取属性的getter方法的,一般按照属性首字母小写来处理。但是我的名字是id,因此该方法也是行不通的。
3.如果上面两个方法你仍然报错,下面是我自己总结的方法: Servlet.service() for servlet [jsp] in context with path javax.el.PropertyNotFoundException: Property 'id' not found on type bean.Student 你需要做到的是:
同样setId()方法也修改,同时DAO中调用setId()和getId()方法也修改“D=>d”。所以我还是怀疑是使用EL时的命名规范在作怪。而且我通过代码验证修改成小写d可以成功。而第一个错误Servlet.service() for servlet需要看它后面抛出的异常,即第二个错误。 另一种猜测:在jstl的el表达式引用错误应该使用${info.type.id } 而不是${info.id }(未验证) 参考资料: 1.JSP not finding property in bean - stackoverflow 丢失set方法 2.javax.el.PropertyNotFoundException: Property 'answer' not - stackoverflow 3.异常:javax.el.PropertyNotFoundException: Property 'id' not found on - CSDN 4.javax.el.PropertyNotFoundException: Property 'Owner' not found on - 百度知道 5.JSP没有使 - CSDN论坛 该错误报告和在线笔记希望对你有所帮助~ (By:Eastmount 2015-5-19 凌晨4点 http://blog.csdn.net/eastmount/)