Скорее всего, он генерируется классом org.apache.commons.beanutils.PropertyUtils
, пытающимся получить доступ к свойствам из bean-компонента, который имеет значение null. Ваш ActionForm
может быть этим бобом.
У вас есть ActionForm
, определенный для вашего Action
? Проверьте файл struts-config.xml
и посмотрите, относится ли атрибут name тега <action>
к <form-bean>
.
Вы не предоставляете достаточно информации здесь, так что я могу только догадываться. Вы также должны опубликовать трассировку стека.
РЕДАКТИРОВАТЬ: Есть еще одна вещь, которую вы можете проверить. Из трассировки стека кажется, что с вашей формой действия все в порядке (я не думаю, что вы бы так глубоко вошли в вызов, если бы форма была нулевой), но это может быть что-то в форме.
Используете ли вы вложенные свойства или задаете что-то для bean-компонента в форме, например:
public class MyAction extends ActionForm {
private SomeBean innerBean;
...
public SomeBean getInnerBean() {
return this.innerBean;
}
}
Если в своем JSP вы указали form.innerBean.someProperty
при отправке значения для этого, Struts попытается сделать что-то вроде form.getInnerBean().setSomeProperty(...)
. Если деталь form.getInnerBean()
пуста, Struts будет жаловаться, прежде чем вы получите исключение NullPointerException.
Решением для такого рода вещей является изменение:
public class MyAction extends ActionForm {
private SomeBean innerBean;
...
}
до
public class MyAction extends ActionForm {
private SomeBean innerBean = new SomeBean();
...
}
Может ли это быть причиной?