I have the following problem with checkbox arrays. I would really appreciate clues on what is the best workaround.
The situation is this: - I have a data entry page flow with multiple pages entering data into a form bean stored on the session (all the actions share the same form bean). - Several pages contain checkboxes so I have to reset their corresponding form properties in an overridden ActionForm.reset() method. - Some of these checkboxes appear on the first page only and causes a problem as the form will reset their properties when navigating to the second page, but they will not be repopulated as they don't have a control on this page and therefore will remain cleared. For simple checkboxes I just put a corresponding <html:hidden> field on the pages that shouldn't render that particular checkbox. The hidden field makes sure the checkbox's value is posted through to the action and thus repopulated into the form. But, for array checkboxes created with <html:multibox> I don't succeed with this solution. The solution with the hidden field I used for simple checkboxes will only hold one value, and thus will only keep one of potentially many selections in the checkbox array. How should this best be solved? At the moment I have implemented a workaround that will only reset the checkbox array when populating from a page that actually contains the corresponding checkboxes. I do this by adding a hidden "flag" field that signals that the page contains the checkboxes and I can later use this as a conditional in the reset method: page1.jsp <input type="hidden" name="hasPersonCheckboxes"> <c:forEach items="${personList}" var="person"> <html:multibox property="personIds"> <c:out value="${person.id}"/> </html:multibox> <c:out value="${person.name}"/> </c:forEach> MyActionForm.java: public void reset( ActionMapping mapping, HttpServletRequest request) { if ( request.getParameter("hasPersonCheckboxes") != null ) personIds = new Long[0]; } This way, if page2.jsp doesn't contain a hasPersonCheckboxes field, the personIds attribute will not be cleared when navigating to this page and will retain its value (given that the form bean scope remains on the session). But, there may be a better and cleaner solution? (Sometimes I wish that Struts would include support for handling all this checkbox reset stuff. F ex, each rendering of Struts' checkbox or multibox tags could make additions to some Struts managed hidden field that records what checkboxes are placed in the form, and could use this for automagically clearing the appropriate properties.) Mike --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]