Я использую WebSphere 5.1.2 и думаю, что это Struts 1, но я не уверен.Struts не использует мой getter methd
Моя проблема заключается в следующем.
У меня в моей форме динамический список beanName beanName, с вводами типа текста.
Моя форма что-то вроде этого (не копировать & пасту, потому что это на виртуальной машине без интернета):
public class MyForm extends ActionForm implements Serializable {
// Property
private List beanNameList = new ArrayList();
// Simple Getter
public List getBeanNameList() {
if (beanNameList == null) {
beanNameList = new ArrayList();
}
return beanNameList ;
}
// Item Getter
public BeanName getBeanNameList(int index) {
if (beanNameList == null) {
beanNameList = new ArrayList();
}
for (int i = beanNameList.size(); i <= index; i++) {
beanNameList.add(new BeanName());
}
return (BeanName)contractList.get(index);
}
// Simple Setter
public List setBeanNameList(List value) {
return beanNameList = value;
}
// Item Setter
public BeanName getBeanNameList(int index, BeanName value) {
if (beanNameList == null) {
beanNameList = new ArrayList();
}
for (int i = beanNameList.size(); i <= index; i++) {
beanNameList.add(new BeanName());
}
contractList.set(index, value);
}
}
Когда я отправить форму, я получаю IndexOutOfBoundsException: индекс: 3, размер : 0.
Анализируя консоль, я понял, Struts использует ArrayList.get, а не getBeanNameList, как вы можете видеть на картинке:
Любые идеи?
Похоже, вы получаете ошибку диапазона. Я предлагаю вам проверить эти ** на **, которые у вас есть. Все они великие кандидаты, чтобы быть причиной вашей ошибки. Контрольная точка и некоторая отладка наверняка помогут вам найти ошибку. –
Спасибо, что ответили ed, но это проблема. Даже если я установил точку останова там, он не останавливается. –
Я положил точку останова в Get get get getbainNameList(), и он останавливается, но не на Simple getter "public BeanName getBeanNameList (int index)" –