我正在尝试使用 Struts 填充选择。但是,我收到此错误消息: No getter method available for property label under namecom.packagename.branchImpl
在其查找的类中也没有名为“label”的变量,所以我不知道它是如何查找的label
表单类是一个非常典型的实体类
关于为什么会发生此错误的任何建议?
可能是<cain:optionsCollection
应该是的错字<html:optionsCollection
。最后一个标签使用property
属性来收集具有label
和value
属性的 bean。如果您在集合 bean 中有不同的属性名称,那么可以使用标记的label
和value
属性来指定它。例如,如果您有一个集合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
不需要属性。
没有可用于具有名称的 bean 的属性的 getter 方法
我没有发布完整的错误和jsp,所以只要理解
例如:
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 时只是一个小错误。
它正在寻找一个标签属性,因为这就是optionsCollection
:
该标签对一组 bean 进行操作,其中每个 bean 都有一个 label 属性和一个 value 属性。这些属性的实际名称可以使用该标签的标签和值属性进行配置。