【问题标题】:Remedy for java.lang.NoSuchMethodException: Unknown property 'Centres'java.lang.NoSuchMethodException 的补救措施:未知属性 'Centres'
【发布时间】:2014-12-16 11:08:00
【问题描述】:

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

所以

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()”。请让我知道是否有其他解决此问题的方法。

【问题讨论】:

  • AddCentreNestedForm中的字段名称更改为小写centres

标签: java apache-commons-beanutils nosuchmethod


【解决方案1】:

尝试centers 而不是Centers。属性假定为驼峰式。

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2011-06-20
      • 1970-01-01
      • 1970-01-01
      • 2012-05-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多