Unable to obtain dropdown list in <html:optionsCollection> tag inside <html:select> tag

553 views Asked by At

Adminprofile.jsp

I am using options collection to iterate through agencylist and show dropdown values

 <html:form action="/adminaction.do" styleId="registration-form">
        <div class="firstFieldset1 agencyNameDiv">
            <label for="agencyName">Agency Name </label>
                <html:select property="agencyName" >
                     <html:option value="0">Selectagency</html:option>
                          <html:optionsCollection name="UserRegistrationForm" property="agencyList" label="agncyId" value="agncyName" />
                 </html:select>
        </div>
    </html:form>

UserRegistrationForm.java

Bean form for showing the jsp page. I have added the agency list here for getting it in the jsp page

 public class UserRegistrationForm extends org.apache.struts.action.ActionForm {
    private String agencyName;
    private ArrayList<BrandAgencyData> agencyList;



        public ArrayList<BrandAgencyData> getAgencyList() {
            return agencyList;
        }
        public void setAgencyList(ArrayList<BrandAgencyData> agencyList) {

            this.agencyList = agencyList;
        }
        public String getAgencyName() {
            return agencyName;
        }
        public void setAgencyName(String agencyName) {
            this.agencyName = agencyName;
        }

        public ActionErrors validate(ActionMapping mapping,
                HttpServletRequest request) {
            ActionErrors errors = new ActionErrors();

            return errors;
        }
    }

Struts-config.xml

I am sending the request to AdminAction for seetting the agencylist values inside the action class

  <action path="/admineditview" name="UserRegistrationForm"
                scope="request" type="com.cts.assetserv.core.web.action.AdminAction"
                parameter="method">
                <forward name="Success" path="/jsp/Adminprofile.jsp" />
                <forward name="Error" path="/jsp/ErrorPage.jsp" />

    </action>

AdminAction.java

Sets up agencyList values in form bean.

public ActionForward modify(ActionMapping mapping, 
                            ActionForm form,
                            HttpServletRequest request, 
                            HttpServletResponse response)
       throws Exception {

  ActionForward actionForward = mapping.findForward(AssetServConstants.SUCCESS);
  UserRegistrationForm registrationForm = (UserRegistrationForm) form;

  ArrayList<BrandAgencyData> pepsiList = new ArrayList<BrandAgencyData>();
  pepsiList.add(new BrandAgencyData("1", "USA"));
  pepsiList.add(new BrandAgencyData("2", "Canada"));
  pepsiList.add(new BrandAgencyData("3", "Mexico"));

  registrationForm.setAgencyList(pepsiList);

  return actionForward;
}

BrandAgencyData.java

Maintaining label and values for eachdropdown and sending the same object list to the agencylist for dropdown.

import java.util.ArrayList;

public class BrandAgencyData {
private String agncyId;
private String agncyName;

@Override
public String toString() {
  return "BrandAgencyData [agncyId=" + agncyId + ", agncyName=" + agncyName + "]";
}

public BrandAgencyData(String agncyId, String agncyName){
  this.agncyId = agncyId;
  this.agncyName = agncyName;
}

ErrorDetails

rg.apache.jasper.JasperException: An exception occurred processing JSP page /jsp/Adminprofile_body.jsp at line 197

194:                        <label for="agencyName">Agency Name </label>
195:                          <html:select property="agencyName" >
196:                             <html:option value="0">Select Agency</html:option>
197:                             <html:optionsCollection name="UserRegistrationForm" property="agencyList" label="agncyId" value="agncyName" />
198:                         </html:select>
199:                        </div>
200:                        

javax.servlet.ServletException: javax.servlet.jsp.JspException: Failed to obtain specified collection
    org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:916)
    org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:845)
    org.apache.jsp.jsp.adminviewprofile_005fbody_jsp._jspService(adminviewprofile_005fbody_jsp.java:708)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
0

There are 0 answers