Looks like you're missing a form definition, lookup (the method causing the exception) is looking for the form bean when no name is specified in the field definition.
<action path="/load" type="test.web.LoadAction" --> name="editForm" <---- scope="request" validate="true"> <forward name="continue" path="/jsp/edit.jsp"> </forward> </action> Hope that works! danny Jonathan Kovacs wrote: >Hi All, > >I've been beating my head against this problem for a couple days now and >frankly, I'm stumped... > >Using Struts 1.0.2, I'm attempting to display a select box which is filled >with a list of options loaded into the session context. I've verified that >the options are loaded (using an <html:iterate> tag), but for some reason, >the instant I add an <html:form> tag to my .jsp, all hell breaks loose. > >The path my application follows is this: > >/jsp/index.jsp --> /load.do --> /jsp/edit.jsp > >The relevant sections of my struts-config.xml file: > ><struts-config> > > <!-- ========== Form Bean Definitions =================================== >--> > <form-beans> > <form-bean name="editForm" > type="test.web.editForm" /> > </form-beans> > > <!-- ========== Action Mapping Definitions ============================== >--> > <action-mappings> > <action path="/load" > type="test.web.LoadAction" > scope="request" > validate="true"> > <forward name="continue" > path="/jsp/edit.jsp"> > </forward> > </action> > <action path="/edit" > type="test.web.EditAction" > name="editForm" > scope="request" > input="/jsp/edit.jsp" > validate="false"> > <forward name="cancel" > path="/jsp/index.jsp"> > </forward> > <forward name="continue" > path="/jsp/edit.jsp"> > </forward> > </action> > </action-mappings> ></struts-config> > >In edit.jsp: > ><html:form action="/edit.do"> > <html:select property="name"> > <html:options collection="<%= Constants.DATA % >" property="label"/> > </html:select> ></html:form> > >The error: > >javax.servlet.ServletException > at >org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImp >l.java:471) > at org.apache.jsp.edit$jsp._jspService(groups$jsp.java:312) > at >org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:107) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) > at >org.apache.jasper.servlet.JspServlet$JspServletWrapper.service(JspServlet.ja >va:201) > at >org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:381) > at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:473) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) > at >org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher. >java:683) > at >org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatch >er.java:431) > at >org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher >.java:355) > at >org.apache.struts.action.ActionServlet.processActionForward(ActionServlet.ja >va:2199) > at >org.apache.struts.action.ActionServlet.process(ActionServlet.java:2023) > at >org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:540) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:740) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) > at >org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Application >FilterChain.java:247) > at >org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterCh >ain.java:193) > at >org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.ja >va:243) > at >org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5 >66) > at >org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472) > at >org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943) > at >org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.ja >va:190) > at >org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5 >66) > at >org.apache.catalina.valves.CertificatesValve.invoke(CertificatesValve.java:2 >46) > at >org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5 >64) > at >org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472) > at >org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943) > at >org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2347) > at >org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180 >) > at >org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5 >66) > at >org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve. >java:170) > at >org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5 >64) > at >org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:170 >) > at >org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5 >64) > at >org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:468) > at >org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5 >64) > at >org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472) > at >org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943) > at >org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java >:174) > at >org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5 >66) > at >org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472) > at >org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943) > at >org.apache.catalina.connector.http.HttpProcessor.process(HttpProcessor.java: >1027) > at >org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.java:1125 >) > at java.lang.Thread.run(Thread.java:479) >14:25:35,791 ERROR [Engine] ----- Root Cause ----- >javax.servlet.jsp.JspException > at org.apache.struts.taglib.html.FormTag.lookup(FormTag.java:803) > at >org.apache.struts.taglib.html.FormTag.doStartTag(FormTag.java:481) > at org.apache.jsp.edit$jsp._jspService(groups$jsp.java:199) > at >org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:107) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) > at >org.apache.jasper.servlet.JspServlet$JspServletWrapper.service(JspServlet.ja >va:201) > at >org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:381) > at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:473) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) > at >org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher. >java:683) > at >org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatch >er.java:431) > at >org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher >.java:355) > at >org.apache.struts.action.ActionServlet.processActionForward(ActionServlet.ja >va:2199) > at >org.apache.struts.action.ActionServlet.process(ActionServlet.java:2023) > at >org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:540) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:740) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) > at >org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Application >FilterChain.java:247) > at >org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterCh >ain.java:193) > at >org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.ja >va:243) > at >org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5 >66) > at >org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472) > at >org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943) > at >org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.ja >va:190) > at >org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5 >66) > at >org.apache.catalina.valves.CertificatesValve.invoke(CertificatesValve.java:2 >46) > at >org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5 >64) > at >org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472) > at >org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943) > at >org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2347) > at >org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180 >) > at >org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5 >66) > at >org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve. >java:170) > at >org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5 >64) > at >org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:170 >) > at >org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5 >64) > at >org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:468) > at >org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5 >64) > at >org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472) > at >org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943) > at >org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java >:174) > at >org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5 >66) > at >org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472) > at >org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943) > at >org.apache.catalina.connector.http.HttpProcessor.process(HttpProcessor.java: >1027) > at >org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.java:1125 >) > at java.lang.Thread.run(Thread.java:479) > >I've looked at line 803 of FormTag.lookup and so far as I can tell, the >exception is thrown because the code gets a null from it's call to >FormBeans.findFormBean(String): > > // Look up the form bean definition > ActionFormBean formBean = > formBeans.findFormBean(mapping.getName()); > if (formBean == null) { > JspException e = new JspException > (messages.getMessage("formTag.formBean", >mapping.getName())); > pageContext.setAttribute(Action.EXCEPTION_KEY, e, > PageContext.REQUEST_SCOPE); > throw e; > } > > // Calculate the required values > name = mapping.getName(); // <--- Line 803 > scope = mapping.getScope(); > servlet = mappings.getServlet(); > type = formBean.getType(); > >Any suggestions would be *greatly* appreciated! > >Thanks, > >Jonathan Kovacs > > > > -- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>