没有getter方法可用于具有名称的bean的属性

时间:2013-07-09 16:20:45

标签: java hibernate jsp struts javabeans

我正在尝试使用Struts填充选择。但是,我收到此错误消息: 名称为com.packagename.branchImpl的属性标签没有可用的getter方法 在它看起来的类中没有名为'label'的变量,所以我不知道它是如何寻找label

form class是一个非常典型的实体类

有关此错误发生原因的任何建议?

3 个答案:

答案 0 :(得分:2)

<cain:optionsCollection可能是<html:optionsCollection可能是拼写错误。最后一个标记使用property属性来处理具有labelvalue属性的bean集合。如果集合bean中有不同的属性名称,则可以使用标记的labelvalue属性指定它们。例如,如果您有一个集合List<MyBean>

public class MyBean implements Serializable {
  private String key;
  private String name;
  //getters and setters for both

}   

然后你应该使用

<html:select name="querySwiftLogForm" property="branch" >
    <html:optionsCollection name="querySwiftLogForm"  property="branchList" label="name" value="key"/> 
</html:select>

如果您没有可以与该集合一起使用的bean,那么您可以使用LabelValueBean。并且您需要使用该bean的实例填充集合。然后,该bean不需要lablevalue属性,因为它将使用默认值。

此外,如果您使用映射到操作的表单,则不需要name属性。

答案 1 :(得分:1)

  

没有可用于名称为

的bean的属性的getter方法

我没有发布完整的错误和jsp,所有这些只是理解

  • 如果您正在使用它,请首先检查属性文件。
  • 然后检查属性名称 - 例如名称,密码
  • 并检查您定义的setter和getter方法。仔细检查。
  • 然后你会发现setter和getter不同于它应该是

例如:

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

虽然它会是:

public void setname(String name)
{
    this.name = name;
}
public String getname()
{
    return name;
}

使用setter和getter时只是一个小错误。

答案 2 :(得分:0)

它正在寻找标签属性,因为这是optionsCollection所做的:

  

此标记对bean集合进行操作,其中每个bean都具有label属性和value属性。可以使用此标记的label和value属性配置这些属性的实际名称。