JSP: <html:form action="/action2" method='POST'> <table> <tr> <td> <%--html:select property='selectedFromIds' multiple="true"--> <html:optionsCollection property='fromList'/--> </html:select--> <!--html:select property="submissionType" multiple="true" styleClass="selectSmall" styleId="submissionTypeID"> <html:options collection="SubmissionType" property="submissionTypeID" labelProperty="submissionType" /> </html:select--%> <html:select property="selectedFromIds" multiple="true"> <html:options collection="fromList"/> </html:select> </td> <td> <input type="submit" onclick="form.action ='action2.do?methodToCall=add'" value="Add"/> </td> <td> <input type="submit" onclick="form.action ='action2.do?methodToCall=remove'" value="Remove"/> </td> <td> <html:select property='selectedToIds' multiple="true"> <html:optionsCollection property='toList'/> </html:select> </td> </tr> </table>
</html:form> Thank you in advance ! Oleg. On 7/30/07, Oleg Konovalov <[EMAIL PROTECTED]> wrote: > > Hi, > > I wrote a simple screen with 2 html:selects [fromList, toList] and 2 > buttons Add & Remove > using html:optionscollection tag and now need to rework the code using > "html:options collection=" > > <html:select property='selectedFromIds' multiple="true"> > <html:*optionsCollection* property='fromList'/> > </html:select> > > > to something like [that is a piece of my existing application which I have > to follow]: > <html:select property="submissionType" multiple="true" > styleId="submissionTypeID"> > <html:*options* collection="SubmissionType" property="submissionTypeID" > labelProperty="submissionType" /> > </html:select> > where the only related thing I have declared in the Form is: > public String submissionType[]; > > SubmissionType is a Class SubmissionType: > public class SubmissionType { > private String submissionType; > private String submissionTypeID; > ... getters & setters > } > > I tried directly: > <html:select property='selectedFromIds' multiple="true"> > <html:*options Collection=*'fromList'/> > </html:select> > > So how do I convert the tags and probably the Java code as well ? > > HTTP error:500 JspException: Cannot find bean under name fromList, > although have List fromList = form.getFromList (); > > The original sample code is below: > > Action: > public class StrutsAction2 extends DispatchAction { > > public ActionForward init(ActionMapping actionMapping, ActionForm > actionForm, HttpServletRequest httpServletRequest, HttpServletResponse > httpServletResponse) throws Exception { > System.out.println("In Init"); > ControlForm form = (ControlForm)actionForm; > List fromList = form.getFromList(); > fromList.clear(); > fromList.add(new LabelValueBean("v1", "k1")); > fromList.add(new LabelValueBean("v2", "k2")); > fromList.add(new LabelValueBean("v3", "k3")); > > return actionMapping.findForward("init"); > } > > > public ActionForward add(ActionMapping actionMapping, ActionForm > actionForm, HttpServletRequest httpServletRequest, HttpServletResponse > httpServletResponse) throws Exception { > System.out.println ("In Add"); > ControlForm form = (ControlForm)actionForm; > > List fromList = form.getFromList(); > List toList = form.getToList(); > > String[] selectedFromIds = form.getSelectedFromIds (); > > for(int i=0; i < selectedFromIds.length; i++) { > String id = selectedFromIds[i]; > > Iterator iterator = fromList.iterator(); > > boolean ok = false; > while( iterator.hasNext() && !ok) { > LabelValueBean lvb = (LabelValueBean)iterator.next(); > > if(lvb.getValue().equalsIgnoreCase(id)) { > if(!toList.contains(lvb)) { > toList.add(lvb); > } > ok = true; > } > } > } > return actionMapping.findForward("add"); > } > > > public ActionForward remove(ActionMapping actionMapping, ActionForm > actionForm, HttpServletRequest httpServletRequest, HttpServletResponse > httpServletResponse) throws Exception { > System.out.println ("In Remove"); > > ControlForm form = (ControlForm)actionForm; > > List toList = form.getToList(); > > String[] selectedToIds = form.getSelectedToIds(); > > for(int i=0; i < selectedToIds.length; i++) { > String id = selectedToIds[i]; > > Iterator iterator = toList.iterator(); > > boolean ok = false; > while(iterator.hasNext() && !ok) { > LabelValueBean lvb = (LabelValueBean)iterator.next(); > > if(lvb.getValue().equalsIgnoreCase(id)) { > iterator.remove(); > ok = true; > } > } > } > return actionMapping.findForward("remove"); > } > } > > > Form: > public class ControlForm extends ActionForm { > private String[] selectedFromIds; > private String[] selectedToIds; > private List fromList = new ArrayList(); > private List toList = new ArrayList(); > ... getters/setters > } > > JSP: >