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

问题描述 投票:2回答:3

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

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

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

java hibernate jsp struts javabeans
3个回答
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的实例填充集合。然后lablevalue属性对于该bean不是必需的,因为它将使用默认值。

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


1
投票

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

我没有发布完整的错误和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时只是一个小错误。


0
投票

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

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

© www.soinside.com 2019 - 2024. All rights reserved.