2011-04-16 74 views
0

我得到的错误是: javax.el.PropertyNotFoundException:类'Beans.ReservationBean'没有属性'getFirstName'。 我试图访问我的Bean为了得到值 我的bean有一个getter和setter与一个无参数的构造函数。所有变量都定义了。EL不会在我的Bean中获得我的财产

public ReservationBean{ 

String FirstName 

public String getFirstName() { 
    return FirstName; 
} 

public void setFirstName(String FirstName) { 
    this.FirstName = FirstName; 
} 
    } 

这是我的JSP页面试图获取该属性。

<tr><td>First Name:</td><td>${RB.FirstName}</td></tr> 

这是我传递bean作为对象的servlet代码。

request.setAttribute("RB", RB); 
      RequestDispatcher rd = getServletContext().getRequestDispatcher("/Confirmation.jsp"); 
      rd.forward(request, response); 

感谢您的帮助!

+0

此外,尝试命名您的变量以小写字母开头,如firstName而不是FirstName。这将确保您的代码符合JavaBeans标准,这对于EL来说很重要。 – lobster1234 2011-04-16 00:16:27

+0

我刚刚做到了。仍然没有区别。 – Ravana 2011-04-16 00:23:09

+0

你可以编辑和粘贴重构的代码吗? – lobster1234 2011-04-16 00:29:16

回答

1

我在粘贴的代码中看不到getFirstName()。这可能吗?

+0

对不起。我复制了错误的代码。 – Ravana 2011-04-16 00:16:57

+0

RB.FirstName将转换为正在调用的方法RB.getfirstName(),该方法不存在(注意大小写)。重构你的bean以符合JavaBeans,你会很好。 – lobster1234 2011-04-16 00:22:05

+0

我做了,我仍然得到这个错误。 – Ravana 2011-04-16 00:30:17

0

您没有FirstName字段的获取者getFirstName。在EL中,当你指定一个属性名称时,它最终会调用该属性的getter。 Java无法找到该方法,因此您将收到PropertyNotFoundException异常。另外,使用camelCase作为字段名,所以在你的情况下字段应该命名为firstName。 一个bean的通用语法是这样的:

private {type} fieldName; 

public {type} getFieldName() { 
return (this.fieldName); 
} 
public void setFieldName({type} fieldName) { 
this.fieldName = fieldName; 
} 

让我知道如何去。

+0

没有它。我复制了错误的代码。对于那个很抱歉 – Ravana 2011-04-16 00:19:56