I am having a problem with a map-backed form and html:select with multiple="true". Would appreciate any help/ideas.
I need to display a set of "html:select" lists. The number of lists is user-defined (based on database data) and each select list must allow more than one choice to be selected. I settled on using a map property in the form bean as the manual suggests. Everything works great on initial display, furthermore I am selecting all values which will be the normal use case for the user. However, upon return, only a single value is passed in. Should I be using the "value" attribute on the html:select tag? I cannot seem to figure out how to make it work as an array. Here are the relevant struts/JSTL tags. <c:forEach items="${form1.choiceList}" var="valueArray"> <td style="text-align: center;"> <c:set var="cList" value="${Collection_charChoices[choiceArray.key]}"/> <html-el:select name="form1" property="choiceLists(${choiceArray.key})" size="6" multiple="true" value="choiceLists($choiceArray.key)"> <html-el:options collection="cList" property="id" labelProperty="name"/> </html-el:select> </td> </c:forEach> Here is a code snipped I use to inspect the map as it comes in (afer having been successfully sent out and displayed with all values selected): Set keySet = map.keySet(); Iterator ik = keySet.iterator(); while (ik.hasNext()) { Object key = (String)ik.next(); log.debug("showMap - mapKey='"+key.toString()+"'"); Object value = map.get(key); if ( value instanceof String[] ) { String[] valArray = (String[]) value; for (int i=0;i<valArray.length;i++) log.debug("showMap - valArray["+i+"]='"+valArray[i]+"'"); } else { log.debug("showMap - value instanceof '"+value.getClass().getName()+"'"); log.debug("showMap - value='"+value.toString()+"'"); } } It shows a simple String object (the first choice in the options list, actually) rather than the String[] that was sent out. Thank you again - Richard --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]