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: