That just associates a logical form name with the underlying Java implementation. You still need to tell Struts which form bean the action uses.
--Kevin -----Original Message----- From: Jonathan Kovacs [mailto:[EMAIL PROTECTED]] Sent: Thursday, September 19, 2002 3:35 PM To: Struts Users Mailing List Subject: RE: html:form frustration Danny, Isn't that what this section of my struts_config.xml is for? > <form-beans> > <form-bean name="editForm" > type="test.web.editForm" /> > </form-beans> Jonathan -----Original Message----- From: Danny Mui [mailto:[EMAIL PROTECTED]] Sent: Thursday, September 19, 2002 3:05 PM To: Struts Users Mailing List Subject: Re: html:form frustration 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(PageConte >xtImp >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.j a >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(ApplicationDispatc h >er.java:431) > at >org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatche r >.java:355) > at >org.apache.struts.action.ActionServlet.processActionForward(ActionServlet.j a >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(Applicatio n >FilterChain.java:247) > at >org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterC h >ain.java:193) > at >org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.j a >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.j a >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:18 0 >) > 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:17 0 >) > 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.jav a >: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:112 5 >) > 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.j a >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(ApplicationDispatc h >er.java:431) > at >org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatche r >.java:355) > at >org.apache.struts.action.ActionServlet.processActionForward(ActionServlet.j a >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(Applicatio n >FilterChain.java:247) > at >org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterC h >ain.java:193) > at >org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.j a >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.j a >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:18 0 >) > 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:17 0 >) > 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.jav a >: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:112 5 >) > 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]> -- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>