2014-10-21 3 views
0

Я работаю над проектом на основе Struts2. У меня есть POJO, называемый AddCentreNestedForm, который имеет одно из свойств типа String [], называемое Centres.Устранение для java.lang.NoSuchMethodException: Неизвестное свойство 'Центры'

Так

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, я назвал его «getCentres()». Пожалуйста, дайте мне знать, есть ли другое решение этой проблемы.

+0

Измените свое имя в 'AddCentreNestedForm' на нижний регистр' centres'. –

ответ

0

Я устал от выбора свойства «Центры» для «центров», но после этого значение из свойства jsp в POJO перестало быть заполненным. Я также внес изменения в страницу jsp и преобразовал «Центры» в «центры», но без помощи. Затем я попробовал простое решение, и это сработало. Я просто использовал метод геттера, то есть getCentres(), и он работал. Поэтому я удалил строку, содержащую BeanUtils, и вместо этого извлек значение из getCentres().

2

Попробуйте centers, а не Centers. Предполагается, что свойства находятся в верблюжьем корпусе.