gpt4 book ai didi

java - Struts 没有使用我的 getter 方法

转载 作者:行者123 更新时间:2023-12-01 09:37:06 25 4
gpt4 key购买 nike

我正在使用 WebSphere 5.1.2,并认为它是 Struts 1,但我不确定。

我的问题如下。

我的表单中有一个 bean 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:index: 3, size: 0。

分析控制台,我意识到 Struts 使用的是 ArrayList.get,而不是 getBeanNameList,如图所示:

console error

有什么想法吗?

最佳答案

我发现了问题...

我的 Struts 版本太旧了,它确实不使用带有签名索引的 getter 和 setter,而是使用 ArrayList.get 或类似的东西。

为了解决这个问题,我创建了一个具有列表大小的隐藏字段,并且在表单的重置方法中,我只设置了列表的大小。

关于java - Struts 没有使用我的 getter 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38799988/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com