针对java.lang.NoSuchMethodException的补救措施:未知属性“中心”

时间:2014-10-21 09:16:43

标签: java apache-commons-beanutils nosuchmethod

我正在开发一个基于Struts2的项目。我有一个名为AddCentreNestedForm的POJO,它有一个名为Centres的String []类型的属性。

所以

public class AddCentreNestedForm{

....
....
private String[] Centres = new String[]{"-1","-1","-1","-1","-1","-1"};
...
...
public String[] getCentres(){
   return Centres;
}
public void setCentres(String[] Centres){
   this.Centres = Centres;
}

}

现在在动作类中,我有一个如下声明:

String[] centres =null;
...
...

centres = BeanUtils.getArrayProperty(addCentreNestedForm, "Centres");

在这一行上,它给出了异常:

java.lang.NoSuchMethodException: Unknown property 'Centres'

' addCentreNestedForm'是POJO AddCentreNestedForm的一个实例。

我调试了应用程序,执行此行时,Centres的值为{"Centres","-1"}.

在谷歌搜索此异常时,它提到当BeanUtils无法为上述属性找到正确的getter方法时会发生此异常。

请让我知道getter方法名称应该是什么,我将其命名为' getCentres()'。如果有任何其他解决方案,请告诉我。

2 个答案:

答案 0 :(得分:2)

尝试centers而不是Centers。假设属性处于驼峰状态。

答案 1 :(得分:0)

我厌倦了将'中心'属性设置为'中心',但在这样做之后,从jsp到POJO属性的值不再被填充。我还对jsp页面进行了更改,并将“中心”转换为“中心”,但没有任何帮助。然后我尝试了一个简单的解决方案,它的工作我简单地使用了getter方法,即getCentres(),它起作用了。所以我删除了包含BeanUtils的行,而是从getCentres()获取了值。