2

我正在尝试使用 Struts 填充选择。但是,我收到此错误消息: No getter method available for property label under namecom.packagename.branchImpl 在其查找的类中也没有名为“label”的变量,所以我不知道它是如何查找的label

表单类是一个非常典型的实体类

关于为什么会发生此错误的任何建议?

4

3 回答 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 的实例填充集合。然后lable以及value该 bean 不需要的属性,因为它将使用默认值。

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

于 2013-07-09T19:30:34.340 回答
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 时只是一个小错误。

于 2015-04-15T12:42:47.843 回答
0

它正在寻找一个标签属性,因为这就是optionsCollection

该标签对一组 bean 进行操作,其中每个 bean 都有一个 label 属性和一个 value 属性。这些属性的实际名称可以使用该标签的标签和值属性进行配置。

于 2013-07-09T18:59:14.960 回答