在Getter / Setter名字上挑剔? JSF / Jboss Seam

时间:2011-10-09 07:49:21

标签: java jsf seam

我正在开发一个在tomcat 5.0.28上运行的JBoss seam应用程序(JSF 1.1和MyFaces Tomahawk)。

让我感到烦恼的是,有时当我创建一个变量以及它的setter和getter时,他们不会在我身上重新获得错误,例如:

 javax.faces.el.PropertyNotFoundException: Bean: com.sportsMed.Util , property: mappingUID   

我必须尝试重复更改Setter / Getter名称并进行测试,直到它通过而没有错误,这可能会通过5-6个不同的名称而变得非常浪费时间。

我做错了吗?就在10分钟前,我不得不改变:

  private String UserName;
  public void setUserName(String s)...
  public String getUserName()....

不起作用导致找不到Property,所​​以我将上面改为:

  private String user_Name;
  public void setuser_Name(String s)...
  public String getuser_Name()....

不,并最终尝试:

  private String nUser;
  public void setnUser(String s)...
  public String getnUser()....

不知怎的,这很好用!并且有时提到它会在5-6名称更改后才能工作!有人能告诉我我做错了什么或者为什么会这样。感谢

1 个答案:

答案 0 :(得分:4)

  • 字段必须为小写,不带下划线
  • setter必须为set +大写字段(getter相同)

所以:

private String userName;
public void setUserName(..);
public String getUserName(..);

参考:javabeans specjava naming conventions

使用IDE(Eclipse,NetBeans,IntelliJ)生成setter和getter会使事情变得更容易。