【问题标题】:javax.el.PropertyNotFoundException: Property 'Name' not found on type [duplicate]javax.el.PropertyNotFoundException:在类型上找不到属性“名称”[重复]
【发布时间】:2012-09-08 04:58:37
【问题描述】:

我有如下代码:

FriendsList = new ArrayList()
....   
ResultSet rs = st.executeQuery(Select);
while (rs.next()) {
   Member member = new Member(rs);
   FriendsList.add(member);
}

它成功获取结果并进入成员类的构造函数并向其添加数据。但是一旦我尝试使用我的 jsp 文件中的 FriendsList 属性访问它的属性之一,我就会遇到以下错误:

 "Caused by: javax.el.PropertyNotFoundException: Property 'Name' not found on type   
 application.Member"

使用 Eclipse,我为 Member 类的每个属性生成了一个完整的 setter 和 getter 列表,如下所示:

    public String getName() {
    return Name;
}
public void setName(String name) {
    Name = name;
}

【问题讨论】:

  • 答案是正确的,您应该在 JSP 中使用 "name",而不是 "Name"。但是你为什么要问一个关于你的 JSP 的问题而不显示导致错误的 JSP 部分呢?

标签: jsp struts2


【解决方案1】:

关键是“属性名”到方法名的转换。通常,getter 名称是通过获取属性名称、将第一个字符大写并在前面加上“get”来获得的。

因此,如果您要调用 getName 方法,则该属性是带有小写 n 的“名称”,而不是大写 N。

对于实际上以大写字母等开头的属性也有许多特殊情况,但是如果您将其设置为属性名称始终以小写字母开头,则生活会简单得多。

【讨论】:

  • 您的建议“但如果您将其设置为属性名称始终以小写字母开头,那么生活会简单得多。”真的让我的生活更轻松:)
猜你喜欢
  • 2013-02-10
  • 2012-11-23
  • 2016-09-01
  • 2020-02-17
  • 2015-10-09
  • 2015-08-22
  • 2017-09-01
  • 2012-05-03
相关资源
最近更新 更多