I'm using a Map-backed action form to render dynamic pages. I'm having a problem with checkboxes, using the html:multibox tag. If I display 3 choices and check two, only the first one is detected and sent to the back-end. After pressing Submit, it appears that the ActionForm setter stores the field as a String, rather than String[] so I only get the first value. (Please see code snippets below).
If anyone can help me figure out how to make the multibox work with a Map-backed form, I'd really appreciate it. I'm hoping that I won't need to hardcode String[] properties in my ActionForm to handle checkboxes as I'd like to make page rendering dynamic. Thanks ------------- CODE SNIPPETS FOLLOW ---------------- Note: I posted a similar message previously but found out the reason behind my `No getter method available' error. The code below corrected that problem. ============= ACTION FORM ========================= public class MyDynaActionForm extends ActionForm { public MyDynaActionForm() { super(); } private final Map values = new HashMap(); public void setValue(String key, Object value) { values.put(key, value); } public Object getValue(String key) { return values.get(key); } } ======================= JSP ========================= [Assume that dispList, an ArrayList of DisplayItemBeans, exists in some scope and: - has get/set methods for scrn_clmn (label to display), db_clmn (column name used as key in ActionForm map), options (ArrayList of LabelValueBeans containing choices for selection widgets) - has helper methods such as isUITypeCheckbox() to identify what type of widget it is] <logic:iterate id="dib" name="dispList" type="DisplayItemBean" > <tr> <bean:define id="db_clmn" value='<%= "value(" + dib.getDb_clmn() + ")" %>'/> <td><bean:write name="dib" property="scrn_clmn" /></td> <td> <% if (dib.isUITypeCheckbox() ) { %> <logic:iterate id="opt" name="dib" property="options" type="org.apache.struts.util.LabelValueBean" > <html:multibox property="<%=db_clmn%>" > <bean:write name="opt" property="value" /> </html:multibox> <bean:write name="opt" property="label" /> </logic:iterate> <% } else if (dib.isUITypeRadiobutton() ) { %> ... display using html:radio <% } else if ...{ %> ...handle other cases <% } %> </td> </tr> </logic:iterate> --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]