java - Struts 1 ActionForm 中的 ArrayList 未填充

标签 java html struts

我有一个 ActionForm (RevisionActionForm),我从 DB2 填充它并显示在页面上。该表单具有各种字段和一个包含其他几个类和 ArrayList 的类。页面加载正常,所有内容都按我的预期显示,但是当提交页面时,表单不再具有 ArrayList 元素(所有其他字段都按预期加载)。我假设问题源于以下事实:ArrayList 已构建,但不存在用于存储值的元素。以下是相关代码段(为了减少这篇文章,我省略了我认为不相关的代码段)。

JSP

<logic:notEmpty name="revisionBean" property="revisionData.reasonsData">
    <div>
        &nbsp;
    </div>
    <div style="vertical-align: top; text-align: left; font-size: 15px">
        <strong> 604 Information </strong>
    </div>
    <logic:iterate id="reqReas" name="revisionBean" property="revisionData.reasonsData" indexId="reqReasIdx">
        <div>
            <ao:text name="reqReas" property="reasonCodeId" indexed="true" 
                     label="Reason Code ID ${reqReasIdx+1}: " 
                     size="5" maxlength="5" disabled="true"/>
        </div>
        <div>
            <ao:text name="reqReas" property="priorityOrNum" indexed="true"
                     label="Priority Or Num ${reqReasIdx+1}: "
                     size="2" maxlength="2" disabled="true"/>
        </div>
    </logic:iterate>
</logic:notEmpty>

Action 表单

public class RevisionActionForm extends BaseActionForm{

    /**
     * Transfer object for the Revision information.
     */
    private RevisionTO revisionData = new RevisionTO();

    public RevisionActionForm() {   
    }

    public RevisionTO getRevisionData(){
        return revisionData;
    }

    public void setRevisionData(RevisionTO revisionData){
        this.revisionData = revisionData;
    }   
}

RevisionTO(保存ArrayList)

public class RevisionTO implements Serializable {

    private ArrayList<RevisionReasonsTO> reasonsData = new ArrayList<RevisionReasonsTO>();

    public RevisionTO() {   
    }

    public ArrayList<RevisionReasonsTO> getReasonsData() {
        return reasonsData;
    }

    public RevisionReasonsTO getReasonData(int index) {
        if (reasonsData == null) {
            reasonsData = new ArrayList<RevisionReasonsTO>();
        }
        while (index >= reasonsData.size()) {
            reasonsData.add(new RevisionReasonsTO());
        }
        return reasonsData.get(index);
    }

    public void setReasonsData(ArrayList<RevisionReasonsTO> reasonsData) {
        this.reasonsData = reasonsData;
    }   
}

行动 公共(public)类 RevisionAction 扩展了 Action{

    public ActionForward execute(ActionMapping mapping, ActionForm form,
                                 HttpServletRequest request, HttpServletResponse response) throws Exception{

        ActionForward forward = new ActionForward();
        HttpSession session = request.getSession(false);
        RevisionActionForm revisionForm = (RevisionActionForm) form;
}

上周我一直在网上进行研究和实验,但没有成功。如果这是显而易见的,我深表歉意,但我对 Java 有点生疏,而且对 Struts 还很陌生。任何和所有帮助将不胜感激。

最佳答案

更改您的 getReasonData(int index)setReasonsData(ArrayList<RevisionReasonsTO> reasonsData)getReqReas(....)setReqReas

关于java - Struts 1 ActionForm 中的 ArrayList 未填充,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6766687/

相关文章:

javascript - Snap.svg:元素默认行为的 Drag() 问题

redirect - 支柱 : Redirect back to an empty form

java - 地址已在使用 : JVM_Bind java

java - Swing 中的变量布局

java - 一个例子中父类(super class)不能转换为子类,而另一个例子中可以顺利转换。为什么?

html - 在我的代码中很难将 flex 元素与行对齐

javascript - 在js文件中加载struts标签或将action中的值传递到js文件

java - mvn appengine :update and mvn appengine:deploy in Google App Engine 之间的区别

java - 使用android intent从服务器打开pdf文件

html - 如何在标题值中换行