热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

[java]javax.el.PropertyNotFoundException:Property#39;id#39;notfoundontypebean.Student

问题提出:在使用MyEclipse开发JavaWeb时,调用DAO和JavaBean出现了如下错误:严重:Servlet.service(
问题提出:

在使用MyEclipse开发Java Web时,调用
DAO和Java Bean出现了如下错误:

严重: 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)




其中我的类中已经定义了属性和get/set方法,如下:

package bean;public class Student {private Integer id; //学号private String name; //姓名private String password; //密码public Integer getID() { return id; }public String getName() { return name; }public String getPassword() { return password; }public void setID(Integer id) { this.id = id; }public void setName(String name) { this.name = name; }public void setPassword(String pwd) { this.password = pwd; }} 而Jsp中的调用代码是通过EL实现,也导入了相应的包。如下:

<%&#64; page language&#61;"java" pageEncoding&#61;"UTF-8"%>
<%&#64; taglib uri&#61;"http://java.sun.com/jsp/jstl/core" prefix&#61;"c" %>


<%List studentList &#61; StudentDAO.listStudents();request.setAttribute("studentList", studentList);
%>

选择学号姓名密码操作
${stu.id}${stu.name}${stu.password}修改删除



解决方案&#xff1a;

1.可能你遇到的错误是“Property &#39;id&#39; not found on type java.lang.String”异常
它的意思是String类中没有id这个属性&#xff0c;而修改的方法就是&#xff1a;
 
修改成&#xff1a;

但是你需要注意它的错误是&#xff1a; java.lang.String对比type bean.Student&#xff0c;其中对应src/bean.Student.java文件。而且我在JSP中已经是${studentList}这种变量了&#xff0c;所以该方法不是该错误的解决方案。

2.有人说是bean的属性名称错误&#xff0c;或者没有get,set方法&#xff0c;但是我的bean如下方法。又参考错误“javax.el.PropertyNotFoundException: Property &#39;pNum&#39; not found on type com.manager.Paper”&#xff0c;此时的解决方案是&#xff1a;
private int pNum;
private int pSize;
建议你将这两个属性的名称换下
private int pnum;
private int psize;
据说是应为命名规范&#xff0c;同时stu.EmpNo估计是大小写错了&#xff0c;换成 ${stu.empNo} 就能成功&#xff0c;因为EL是读取属性的getter方法的&#xff0c;一般按照属性首字母小写来处理。但是我的名字是id&#xff0c;因此该方法也是行不通的。

3.如果上面两个方法你仍然报错&#xff0c;下面是我自己总结的方法&#xff1a;
Servlet.service() for servlet [jsp] in context with path
javax.el.PropertyNotFoundException: Property &#39;id&#39; not found on type bean.Student
你需要做到的是&#xff1a;

(1).首先确保循环&#xff0c;然后调用是${stu.id}、${stu.name}&#xff1b;
(2).然后属性命名最好是小写的&#xff0c;当然首字母一定要小写&#xff0c;如empNo&#xff1b;
(3).在数据库中create table student( stuid int,username varchar(20) )对应的Student类变量private Integer id; private String name;其中类型需要一致&#xff0c;同时设置get和set方法&#xff1a;

private Integer id; //学号
private String name; //姓名
public Integer getID() { return id; }
public String getName() { return name; }
public void setId(Integer id) { this.id &#61; id; }
public void setName(String name) { this.name &#61; name; }
(4).在DAO中数据库增删改查操作中类型要一致&#xff0c;并且对应数据库中的学号stuid和姓名username:
        //删除操作
        public static int delete(Integer id) throws Exception {
            String sql &#61; "DELETE FROM student WHEREstuid &#61; ? ";
            return JDBCConnect.executeUpdate(sql, id);
        }
        //查询操作
        student.setId(rs.getInt("stuid"));      
        student.setName(rs.getString("username"));
(5).如果上面的数据库、Java类变量类型都是一致的&#xff0c;使用方法都正确仍然存在该错误&#xff0c;那可能就是下面的错误&#xff1a;
当我定义函数public Integer getID() { return id; }时就会报错

HTTP Status 500 - javax.el.PropertyNotFoundException: Property &#39;id&#39; not readable on type bean.Student

而当我修改为public IntegergetId() { return id; }后运行结果如下图所示&#xff1a;


同样setId()方法也修改&#xff0c;同时DAO中调用setId()和getId()方法也修改“D&#61;>d”。所以我还是怀疑是使用EL时的命名规范在作怪。而且我通过代码验证修改成小写d可以成功。而第一个错误Servlet.service() for servlet需要看它后面抛出的异常&#xff0c;即第二个错误。
另一种猜测&#xff1a;在jstl的el表达式引用错误应该使用${info.type.id } 而不是${info.id }(未验证)
参考资料&#xff1a;
1.JSP not finding property in bean - stackoverflow 丢失set方法
2.javax.el.PropertyNotFoundException: Property &#39;answer&#39; not - stackoverflow
3.异常&#xff1a;javax.el.PropertyNotFoundException: Property &#39;id&#39; not found on - CSDN
4.javax.el.PropertyNotFoundException: Property &#39;Owner&#39; not found on - 百度知道
5.JSP没有使 - CSDN论坛
该错误报告和在线笔记希望对你有所帮助~
&#xff08;By:Eastmount 2015-5-19 凌晨4点   
http://blog.csdn.net/eastmount/&#xff09;
        





推荐阅读
  • 个人学习使用:谨慎参考1Client类importcom.thoughtworks.gauge.Step;importcom.thoughtworks.gauge.T ... [详细]
  • springmvc学习笔记(十):控制器业务方法中通过注解实现封装Javabean接收表单提交的数据
    本文介绍了在springmvc学习笔记系列的第十篇中,控制器的业务方法中如何通过注解实现封装Javabean来接收表单提交的数据。同时还讨论了当有多个注册表单且字段完全相同时,如何将其交给同一个控制器处理。 ... [详细]
  • 点击后defaultEducation的值明明改变了,但props传给子组件却watch不到 ... [详细]
  • PHP图片截取方法及应用实例
    本文介绍了使用PHP动态切割JPEG图片的方法,并提供了应用实例,包括截取视频图、提取文章内容中的图片地址、裁切图片等问题。详细介绍了相关的PHP函数和参数的使用,以及图片切割的具体步骤。同时,还提供了一些注意事项和优化建议。通过本文的学习,读者可以掌握PHP图片截取的技巧,实现自己的需求。 ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • javascript  – 概述在Firefox上无法正常工作
    我试图提出一些自定义大纲,以达到一些Web可访问性建议.但我不能用Firefox制作.这就是它在Chrome上的外观:而那个图标实际上是一个锚点.在Firefox上,它只概述了整个 ... [详细]
  • JavaSE笔试题-接口、抽象类、多态等问题解答
    本文解答了JavaSE笔试题中关于接口、抽象类、多态等问题。包括Math类的取整数方法、接口是否可继承、抽象类是否可实现接口、抽象类是否可继承具体类、抽象类中是否可以有静态main方法等问题。同时介绍了面向对象的特征,以及Java中实现多态的机制。 ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • 本文介绍了南邮ctf-web的writeup,包括签到题和md5 collision。在CTF比赛和渗透测试中,可以通过查看源代码、代码注释、页面隐藏元素、超链接和HTTP响应头部来寻找flag或提示信息。利用PHP弱类型,可以发现md5('QNKCDZO')='0e830400451993494058024219903391'和md5('240610708')='0e462097431906509019562988736854'。 ... [详细]
  • 前景:当UI一个查询条件为多项选择,或录入多个条件的时候,比如查询所有名称里面包含以下动态条件,需要模糊查询里面每一项时比如是这样一个数组条件:newstring[]{兴业银行, ... [详细]
  • Ihavethefollowingonhtml我在html上有以下内容<html><head><scriptsrc..3003_Tes ... [详细]
  • Imtryingtofigureoutawaytogeneratetorrentfilesfromabucket,usingtheAWSSDKforGo.我正 ... [详细]
  • 本文介绍了Swing组件的用法,重点讲解了图标接口的定义和创建方法。图标接口用来将图标与各种组件相关联,可以是简单的绘画或使用磁盘上的GIF格式图像。文章详细介绍了图标接口的属性和绘制方法,并给出了一个菱形图标的实现示例。该示例可以配置图标的尺寸、颜色和填充状态。 ... [详细]
  • Android工程师面试准备及设计模式使用场景
    本文介绍了Android工程师面试准备的经验,包括面试流程和重点准备内容。同时,还介绍了建造者模式的使用场景,以及在Android开发中的具体应用。 ... [详细]
author-avatar
手机用户2502913925
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有