У меня есть ActionForm
(RevisionActionForm), который я заполняю из DB2 и показываю на странице. Эта форма имеет различные поля и класс, который содержит несколько других классов и ArrayList
s. Страница загружается нормально, и все отображается так, как я ожидал, однако, когда страница отправлена, форма больше не имеет элементов ArrayList
(все остальные поля загружаются как положено). Я предполагаю, что проблема связана с тем фактом, что ArrayList
построен, но не существует элементов для значений, которые будут сохранены. Ниже приведены соответствующие сегменты кода (я опустил то, что я считаю неуместным, чтобы уменьшить это почта).
1007 * JSP *
<logic:notEmpty name="revisionBean" property="revisionData.reasonsData">
<div>
</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>
ActionForm
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;
}
}
Действие
Открытый класс RevisionAction расширяет действие {
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. Любая помощь будет принята с благодарностью.