Невозможно получить раскрывающийся список втег внутритег - PullRequest
0 голосов
/ 17 октября 2018

Adminprofile.jsp

Я использую коллекцию опций для перебора списка агентств и отображения раскрывающихся значений

 <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

Форма для отображения страницы jsp.Я добавил список агентств для получения его на странице jsp

 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

Я отправляю запрос в AdminAction для установкиЗначения списка агентств внутри класса действий

  <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

Устанавливает agencyList значений в компоненте формы.

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

Ведение метки и значений для каждого раскрывающегося списка и отправка того же списка объектов в список агентств для раскрывающегося списка.

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)
...