J'utilise WebSphere 5.1.2 et je pense qu'il est Struts 1, mais je ne suis pas sûr.Struts n'utilise pas mon getter methd
Mon problème est le suivant.
J'ai sous ma forme d'une liste dynamique d'un haricot beanname, avec des entrées de type texte.
Ma forme est quelque chose comme ça (ne peut pas copier & coller car il est sur une machine virtuelle sans Internet):
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);
}
}
Quand je soumets la forme, je reçois un IndexOutOfBoundsException: index: 3, taille : 0.
analizing la console, je me suis rendu Struts utilise ArrayList.get, et non getBeanNameList, comme vous pouvez le voir dans l'image:
Des idées?
Il semble que vous obtenez une erreur de plage. Je vous suggère de vérifier ces ** pour ** vous avez là. Ils sont tous de bons candidats pour être la cause de votre erreur. Un point de contrôle et un débogage vous aideront sûrement à trouver l'erreur. –
Merci pour Replly ed, mais c'est le problème. Même si j'y mets un point de rupture, ça ne s'arrête pas. –
Je mets le point d'arrêt sur la liste getter "getBeanNameList()", et il arrête, mais ne pas simple getter "beanname publique getBeanNameList (int index)" –