With Tiles:
<action path="/TilesInitInputs" type="jannen.action.InitInputsAction" scope="request" input="/Start.do" validate="false" name="inputsForm" > <forward name="success" path="/pages/jannen/tiles/layout/inputs.jsp"/> </action>
<action path="/TilesGetInputs" type="jannen.action.GetInputsAction" scope="request" input="/Start.do" validate="false" name="inputsForm" > <forward name="success" path="/pages/jannen/tiles/layout/inputs.jsp"/> </action>
<action path="/TilesSaveInputs" type="jannen.action.SaveInputsAction" scope="request" input="/TilesGetInputs.do" name="inputsForm" > <forward name="success" path="/TilesGetInputs.do"/> </action>
without tiles (works fine):
<action path="/InitInputs" type="jannen.action.InitInputsAction" scope="request" input="/Start.do" validate="false" name="inputsForm" > <forward name="success" path="/pages/jannen/inputs.jsp"/> </action>
<action path="/GetInputs" type="jannen.action.GetInputsAction" scope="request" input="/Start.do" validate="false" name="inputsForm" > <forward name="success" path="/pages/jannen/inputs.jsp"/> </action>
<action path="/SaveInputs" type="jannen.action.SaveInputsAction" scope="request" input="/GetInputs.do" name="inputsForm" > <forward name="success" path="/GetInputs.do"/> </action>
So, three actions. "Init" is called only the first time to give default values, after that it is Save => Get => Save => Get and so on as long as user keeps submitting the form. Purpose of "Get" (and also "Init") is to read the collection of possible choices (allChoices) from database.
From: "Niall Pemberton" <[EMAIL PROTECTED]> Reply-To: "Struts Users Mailing List" <[EMAIL PROTECTED]> To: "Struts Users Mailing List" <[EMAIL PROTECTED]> Subject: Re: Tiles breaks my page that uses logic:iterate Date: Mon, 16 Aug 2004 15:36:07 +0100
OK so post the bits of your struts-config which show the forms and action mappings for
1) The action which renders the page 2) The action the form will post to (i.e. "/TilesSaveInputs")
Niall
----- Original Message ----- From: "Janne Mattila" <[EMAIL PROTECTED]> To: <[EMAIL PROTECTED]> Sent: Monday, August 16, 2004 3:13 PM Subject: Re: Tiles breaks my page that uses logic:iterate
> Yes. And, (for example)
>
> <bean:write name="inputsForm" property="counter" />
>
> works as long as I take out the multibox part.
>
>
> >From: "Niall Pemberton" <[EMAIL PROTECTED]>
> >Reply-To: "Struts Users Mailing List" <[EMAIL PROTECTED]>
> >To: "Struts Users Mailing List" <[EMAIL PROTECTED]>
> >Subject: Re: Tiles breaks my page that uses logic:iterate
> >Date: Mon, 16 Aug 2004 15:09:57 +0100
> >
> >I'm guessing you changed the action your form is pointing to
> >("/TilesSaveInputs") - so is the form name still "inputsForm"?
> >
> > ----> <logic:iterate id="choice" name="inputsForm"
> >property="allChoices">
> >
> >Niall
> >
> >----- Original Message -----
> >From: "Janne Mattila" <[EMAIL PROTECTED]>
> >To: <[EMAIL PROTECTED]>
> >Sent: Monday, August 16, 2004 2:59 PM
> >Subject: Tiles breaks my page that uses logic:iterate
> >
> >
> > > I have a simple page for editing some form properties. It works.
There's
> >a
> > > select box, a multibox, single-select select and a text input field.
Now
> >I
> > > tried to "Tiles-ify" it, just using Tiles to add some silly
decorations
> > > around the actual form. Using tiles seems to break the form, the
> >exception
> >I
> > > get is
> > >
> > > 16:49:43,714 ERROR [Engine] ----- Root Cause -----
> > > javax.servlet.ServletException: Cannot find bean choice in any scope
> > > at
> > >
>
>org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextIm
p
> >l.java:533)
> > > at
> > >
>
>org.apache.jsp.inputs_0002dcontent_jsp._jspService(inputs_0002dcontent_jsp.
j
> >ava:103)
> > > at
> > > org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:137)
> > > at
javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
> > > at
> > >
>
>org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:
2
> >10)
> > > at
> > >
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:295)
> > > at
> >org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
> > > at
javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
> > > at
> > >
>
>org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher
.
> >java:684)
> > > at
> > >
>
>org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatc
h
> >er.java:575)
> > > at
> > >
>
>org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatche
r
> >.java:498)
> > > at
> > >
>
>org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:
8
> >22)
> > > at
> > >
>
>org.apache.jasper.runtime.PageContextImpl.include(PageContextImpl.java:398)
> > > at
> > >
org.apache.struts.tiles.TilesUtilImpl.doInclude(TilesUtilImpl.java:137)
> > > at
> >org.apache.struts.tiles.TilesUtil.doInclude(TilesUtil.java:177)
> > > at
> > > org.apache.struts.taglib.tiles.InsertTag.doInclude(InsertTag.java:756)
> > > at
> > >
>
>org.apache.struts.taglib.tiles.InsertTag$InsertHandler.doEndTag(InsertTag.j
a
> >va:881)
> > > at
> > > org.apache.struts.taglib.tiles.InsertTag.doEndTag(InsertTag.java:473)
> > > at
> > >
>
>org.apache.jsp.template_jsp._jspx_meth_tiles_insert_1(template_jsp.java:197
)
> > > at
> > >
> >org.apache.jsp.template_jsp._jspx_meth_html_html_0(template_jsp.java:109)
> > > at
org.apache.jsp.template_jsp._jspService(template_jsp.java:63)
> > > at
> > > org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:137)
> > > at
javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
> > > at
> > >
>
>org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:
2
> >10)
> > > at
> > >
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:295)
> > > at
> >org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
> > > at
javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
> > > at
> > >
>
>org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher
.
> >java:684)
> > > at
> > >
>
>org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatc
h
> >er.java:575)
> > > at
> > >
>
>org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatche
r
> >.java:498)
> > > at
> > >
>
>org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:
8
> >22)
> > > at
> > >
>
>org.apache.jasper.runtime.PageContextImpl.include(PageContextImpl.java:398)
> > > at
> > >
org.apache.struts.tiles.TilesUtilImpl.doInclude(TilesUtilImpl.java:137)
> > > at
> >org.apache.struts.tiles.TilesUtil.doInclude(TilesUtil.java:177)
> > > at
> > > org.apache.struts.taglib.tiles.InsertTag.doInclude(InsertTag.java:756)
> > > at
> > >
>
>org.apache.struts.taglib.tiles.InsertTag$InsertHandler.doEndTag(InsertTag.j
a
> >va:881)
> > > at
> > > org.apache.struts.taglib.tiles.InsertTag.doEndTag(InsertTag.java:473)
> > > at
> > >
org.apache.jsp.inputs_jsp._jspx_meth_tiles_insert_0(inputs_jsp.java:99)
> > > at org.apache.jsp.inputs_jsp._jspService(inputs_jsp.java:57)
> > >
> > > the JSP page for the form looks like:
> > >
> > > <html:form action="/TilesSaveInputs" onsubmit="return
> > > validateInputsForm(this);">
> > >
> > > <bean:write name="inputsForm" property="counter" /><br>
> > > <html:hidden property="counter" />
> > >
> > > <p>Select + optionsCollection:<br>
> > >
> > > <html:select property="selectedChoicesForSelect" multiple="true"
> >size="5">
> > > <html:optionsCollection property="allChoices" value="key"
> >label="name"/>
> > > </html:select><br>
> > >
> > > <p>Multibox:<br>
> > > <!-- THE FOLLOWING BREAKS THE PAGE -->
> > >
> > > <logic:iterate id="choice" name="inputsForm" property="allChoices">
> > > <html:multibox property="selectedChoicesForMultibox">
> > > <bean:write name="choice" property="key"/>
> > > </html:multibox>
> > > <bean:write name="choice" property="name"/><br>
> > > </logic:iterate>
> > >
> > > <p>Single select + optionsCollection:<br>
> > >
> > > <html:select property="selectedChoiceForSingleSelect">
> > > <html:optionsCollection property="allChoices" value="key"
> >label="name"/>
> > > </html:select><br>
> > >
> > > <p>Plain text field, validated using validator<br>
> > > e-mail:<html:text property="text"/><br>
> > >
> > > <p>
> > > <html:link action="/Start.do">Back</html:link><br>
> > >
> > > <p>
> > > <html:submit/>
> > > </html:form>
> > >
> > > The part which breaks the page is the multibox, it's iterator and use
of
> > > iterator's choice object. If I take that part out the page works fine
> >with
> > > Tiles, I can make the selections etc.
> > >
> > > The page works fine also with the multibox as long as I do not use
> >Tiles.
> > > With tiles I use the same Actions, JSP code for forming the output is
> > > straight copy-paste, there's no difference with the action definitions
> >in
> > > struts-config.xml. The only difference is the use of Tiles. I wonder
> >what
> > > about Tiles causes this to break?
> > >
> > > _________________________________________________________________
> > > Add photos to your e-mail with MSN 8. Get 2 months FREE*.
> > > http://join.msn.com/?page=features/featuredemail
> > >
> > >
> > > ---------------------------------------------------------------------
> > > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > > For additional commands, e-mail: [EMAIL PROTECTED]
> > >
> > >
> >
> >
> >
> >---------------------------------------------------------------------
> >To unsubscribe, e-mail: [EMAIL PROTECTED]
> >For additional commands, e-mail: [EMAIL PROTECTED]
> >
>
> _________________________________________________________________
> STOP MORE SPAM with the new MSN 8 and get 2 months FREE*
> http://join.msn.com/?page=features/junkmail
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
_________________________________________________________________
STOP MORE SPAM with the new MSN 8 and get 2 months FREE* http://join.msn.com/?page=features/junkmail
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]