You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tapestry.apache.org by John Meredith <ps...@t-online.de> on 2003/08/24 11:39:24 UTC
Wierd form/block problem
Well, after a brief holiday, I've delved back into Tapestry and noticed
something weird with forms and blocks:
I have two components on a page which just contain form fields (no
inputs at this stage though): @CustomerDetailsForm,
@CustomerPreferencesForm. Both of which are contained in their
respective blocks:
<span jwcid="details@Block">
<form jwcid="@Form" delegate="ognl:beans.delegate">
<span jwcid="@CustomerDetailsForm" customer="ognl:customer"/>
</form>
</span>
<span jwcid="preferences@Block">
<form jwcid="@Form" delegate="ognl:beans.delegate">
<span jwcid="@CustomerPreferencesForm" customer="ognl:customer"/>
</form>
</span>
Display of the blocks is controlled by a TabPanel-like component - one
of which is always displayed.
Rather than having to repeat the "<form>" tags, I thought I'd surround
the blocks by one form only - as the listener is the same in each case
ie.
<form jwcid="@Form" delegate="ognl:beans.delegate">
<span jwcid="details@Block">
<span jwcid="@CustomerDetailsForm" customer="ognl:customer"/>
</span>
<span jwcid="preferences@Block">
<span jwcid="@CustomerPreferencesForm" customer="ognl:customer"/>
</span>
<input jwcid="@Submit" listener="ognl:formSubmit"/>
</form>
Unfortunately, I get the a "This component must be contained within a
Form." Stack trace as follows:
component:
org.apache.tapestry.form.PropertySelection$Enhance_732@63a0e5[MyPreferences/$CustomerDetailsForm.detailsTitleField] location: context:/WEB-INF/CustomerDetailsForm.jwc, line 29, column 61 Stack Trace:
org.apache.tapestry.form.AbstractFormComponent.getForm(AbstractFormComponent.java:93)
org.apache.tapestry.form.PropertySelection.renderComponent(PropertySelection.java:120)
org.apache.tapestry.AbstractComponent.render(AbstractComponent.java:896)
org.apache.tapestry.BaseComponent.renderComponent(BaseComponent.java:159)
org.apache.tapestry.AbstractComponent.render(AbstractComponent.java:896)
org.apache.tapestry.AbstractComponent.renderBody(AbstractComponent.java:673)
org.apache.tapestry.components.RenderBlock.renderComponent(RenderBlock.java:113)
org.apache.tapestry.AbstractComponent.render(AbstractComponent.java:896)
org.apache.tapestry.BaseComponent.renderComponent(BaseComponent.java:159)
org.apache.tapestry.AbstractComponent.render(AbstractComponent.java:896)
org.apache.tapestry.AbstractComponent.renderBody(AbstractComponent.java:673)
org.apache.tapestry.components.RenderBody.renderComponent(RenderBody.java:86)
org.apache.tapestry.AbstractComponent.render(AbstractComponent.java:896)
org.apache.tapestry.AbstractComponent.renderBody(AbstractComponent.java:673)
org.apache.tapestry.html.Body.renderComponent(Body.java:304)
org.apache.tapestry.AbstractComponent.render(AbstractComponent.java:896)
org.apache.tapestry.AbstractComponent.renderBody(AbstractComponent.java:673)
tm.tapestry.components.Hull.renderComponent(Hull.java:129)
org.apache.tapestry.AbstractComponent.render(AbstractComponent.java:896)
org.apache.tapestry.BaseComponent.renderComponent(BaseComponent.java:159)
org.apache.tapestry.AbstractComponent.render(AbstractComponent.java:896)
org.apache.tapestry.BaseComponent.renderComponent(BaseComponent.java:159)
org.apache.tapestry.AbstractComponent.render(AbstractComponent.java:896)
org.apache.tapestry.AbstractPage.renderPage(AbstractPage.java:341)
org.apache.tapestry.engine.RequestCycle.renderPage(RequestCycle.java:411)
org.apache.tapestry.engine.AbstractEngine.renderResponse(AbstractEngine.java:775)
org.apache.tapestry.engine.PageService.service(PageService.java:118)
org.apache.tapestry.engine.AbstractEngine.service(AbstractEngine.java:913)
org.apache.tapestry.ApplicationServlet.doService(ApplicationServlet.java:238)
org.apache.tapestry.ApplicationServlet.doGet(ApplicationServlet.java:199)
javax.servlet.http.HttpServlet.service(HttpServlet.java:126)
"detailsTitleField" is a property-selection.
Obviously, it can't find the form ... which seems a little odd
considering the tree nature of HTML.
Anyone have an idea what I could be doing wrong/misunderstanding?
TIA,
John
--
John Meredith <ps...@t-online.de>
RE: Wierd form/block problem
Posted by John Meredith <ps...@t-online.de>.
Thanks Howard. Works like a charm now.
- John
On Sun, 2003-08-24 at 14:15, Howard M. Lewis Ship wrote:
> Make sure your InsertBlock is enclosed by the Form. Block breaks all the rules, since it changes
> the render order significantly ... I mean, you can use Block to render a portion of a completely
> different page!
>
> --
> Howard M. Lewis Ship
> Creator, Tapestry: Java Web Components
> http://jakarta.apache.org/tapestry
> http://jakarta.apache.org/commons/sandbox/hivemind/
> http://javatapestry.blogspot.com
>
> > -----Original Message-----
> > From: John Meredith [mailto:psynix@t-online.de]
> > Sent: Sunday, August 24, 2003 5:39 AM
> > To: Tapestry users
> > Subject: Wierd form/block problem
> >
> >
> > Well, after a brief holiday, I've delved back into Tapestry
> > and noticed something weird with forms and blocks:
> >
> > I have two components on a page which just contain form
> > fields (no inputs at this stage though):
> > @CustomerDetailsForm, @CustomerPreferencesForm. Both of which
> > are contained in their respective blocks:
> >
> > <span jwcid="details@Block">
> > <form jwcid="@Form" delegate="ognl:beans.delegate">
> > <span jwcid="@CustomerDetailsForm"
> > customer="ognl:customer"/>
> > </form>
> > </span>
> >
> > <span jwcid="preferences@Block">
> > <form jwcid="@Form" delegate="ognl:beans.delegate">
> > <span jwcid="@CustomerPreferencesForm"
> > customer="ognl:customer"/>
> > </form>
> > </span>
> >
> > Display of the blocks is controlled by a TabPanel-like
> > component - one of which is always displayed.
> >
> > Rather than having to repeat the "<form>" tags, I thought I'd
> > surround the blocks by one form only - as the listener is the
> > same in each case ie.
> >
> > <form jwcid="@Form" delegate="ognl:beans.delegate">
> > <span jwcid="details@Block">
> > <span jwcid="@CustomerDetailsForm"
> > customer="ognl:customer"/>
> > </span>
> > <span jwcid="preferences@Block">
> > <span jwcid="@CustomerPreferencesForm"
> > customer="ognl:customer"/>
> > </span>
> > <input jwcid="@Submit" listener="ognl:formSubmit"/>
> > </form>
> >
> > Unfortunately, I get the a "This component must be contained
> > within a Form." Stack trace as follows:
> >
> > component:
> > org.apache.tapestry.form.PropertySelection$Enhance_732@63a0e5[
> > MyPreferences/$CustomerDetailsForm.detailsTitleField]
> > location: context:/WEB-INF/CustomerDetailsForm.jwc, line 29,
> > column 61 Stack Trace:
> >
> > org.apache.tapestry.form.AbstractFormComponent.getForm(Abstrac
> > tFormComponent.java:93)
> > org.apache.tapestry.form.PropertySelection.renderComponent(Pro
> > pertySelection.java:120)
> > org.apache.tapestry.AbstractComponent.render(AbstractComponent
> > .java:896)
> > org.apache.tapestry.BaseComponent.renderComponent(BaseComponen
> > t.java:159)
> > org.apache.tapestry.AbstractComponent.render(AbstractComponent
> > .java:896)
> > org.apache.tapestry.AbstractComponent.renderBody(AbstractCompo
> > nent.java:673)
> > org.apache.tapestry.components.RenderBlock.renderComponent(Ren
> > derBlock.java:113)
> > org.apache.tapestry.AbstractComponent.render(AbstractComponent
> > .java:896)
> > org.apache.tapestry.BaseComponent.renderComponent(BaseComponen
> > t.java:159)
> > org.apache.tapestry.AbstractComponent.render(AbstractComponent
> > .java:896)
> > org.apache.tapestry.AbstractComponent.renderBody(AbstractCompo
> > nent.java:673)
> > org.apache.tapestry.components.RenderBody.renderComponent(Rend
> > erBody.java:86)
> > org.apache.tapestry.AbstractComponent.render(AbstractComponent
> > .java:896)
> > org.apache.tapestry.AbstractComponent.renderBody(AbstractCompo
> > nent.java:673)
> > org.apache.tapestry.html.Body.renderComponent(Body.java:304)
> > org.apache.tapestry.AbstractComponent.render(AbstractComponent
> > .java:896)
> > org.apache.tapestry.AbstractComponent.renderBody(AbstractCompo
> > nent.java:673)
> > tm.tapestry.components.Hull.renderComponent(Hull.java:129)
> > org.apache.tapestry.AbstractComponent.render(AbstractComponent
> > .java:896)
> > org.apache.tapestry.BaseComponent.renderComponent(BaseComponen
> > t.java:159)
> > org.apache.tapestry.AbstractComponent.render(AbstractComponent
> > .java:896)
> > org.apache.tapestry.BaseComponent.renderComponent(BaseComponen
> > t.java:159)
> > org.apache.tapestry.AbstractComponent.render(AbstractComponent
> > .java:896)
> > org.apache.tapestry.AbstractPage.renderPage(AbstractPage.java:341)
> > org.apache.tapestry.engine.RequestCycle.renderPage(RequestCycl
> > e.java:411)
> > org.apache.tapestry.engine.AbstractEngine.renderResponse(Abstr
> > actEngine.java:775)
> > org.apache.tapestry.engine.PageService.service(PageService.java:118)
> > org.apache.tapestry.engine.AbstractEngine.service(AbstractEngi
> > ne.java:913)
> > org.apache.tapestry.ApplicationServlet.doService(ApplicationSe
> > rvlet.java:238)
> > org.apache.tapestry.ApplicationServlet.doGet(ApplicationServle
> > t.java:199)
> > javax.servlet.http.HttpServlet.service(HttpServlet.java:126)
> >
> > "detailsTitleField" is a property-selection.
> >
> > Obviously, it can't find the form ... which seems a little
> > odd considering the tree nature of HTML.
> >
> > Anyone have an idea what I could be doing wrong/misunderstanding?
> >
> > TIA,
> >
> > John
> >
> > --
> > John Meredith <ps...@t-online.de>
> >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: tapestry-user-unsubscribe@jakarta.apache.org
> > For additional commands, e-mail: tapestry-user-help@jakarta.apache.org
> >
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: tapestry-user-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: tapestry-user-help@jakarta.apache.org
--
John Meredith <ps...@t-online.de>
RE: Wierd form/block problem
Posted by "Howard M. Lewis Ship" <hl...@comcast.net>.
Make sure your InsertBlock is enclosed by the Form. Block breaks all the rules, since it changes
the render order significantly ... I mean, you can use Block to render a portion of a completely
different page!
--
Howard M. Lewis Ship
Creator, Tapestry: Java Web Components
http://jakarta.apache.org/tapestry
http://jakarta.apache.org/commons/sandbox/hivemind/
http://javatapestry.blogspot.com
> -----Original Message-----
> From: John Meredith [mailto:psynix@t-online.de]
> Sent: Sunday, August 24, 2003 5:39 AM
> To: Tapestry users
> Subject: Wierd form/block problem
>
>
> Well, after a brief holiday, I've delved back into Tapestry
> and noticed something weird with forms and blocks:
>
> I have two components on a page which just contain form
> fields (no inputs at this stage though):
> @CustomerDetailsForm, @CustomerPreferencesForm. Both of which
> are contained in their respective blocks:
>
> <span jwcid="details@Block">
> <form jwcid="@Form" delegate="ognl:beans.delegate">
> <span jwcid="@CustomerDetailsForm"
> customer="ognl:customer"/>
> </form>
> </span>
>
> <span jwcid="preferences@Block">
> <form jwcid="@Form" delegate="ognl:beans.delegate">
> <span jwcid="@CustomerPreferencesForm"
> customer="ognl:customer"/>
> </form>
> </span>
>
> Display of the blocks is controlled by a TabPanel-like
> component - one of which is always displayed.
>
> Rather than having to repeat the "<form>" tags, I thought I'd
> surround the blocks by one form only - as the listener is the
> same in each case ie.
>
> <form jwcid="@Form" delegate="ognl:beans.delegate">
> <span jwcid="details@Block">
> <span jwcid="@CustomerDetailsForm"
> customer="ognl:customer"/>
> </span>
> <span jwcid="preferences@Block">
> <span jwcid="@CustomerPreferencesForm"
> customer="ognl:customer"/>
> </span>
> <input jwcid="@Submit" listener="ognl:formSubmit"/>
> </form>
>
> Unfortunately, I get the a "This component must be contained
> within a Form." Stack trace as follows:
>
> component:
> org.apache.tapestry.form.PropertySelection$Enhance_732@63a0e5[
> MyPreferences/$CustomerDetailsForm.detailsTitleField]
> location: context:/WEB-INF/CustomerDetailsForm.jwc, line 29,
> column 61 Stack Trace:
>
> org.apache.tapestry.form.AbstractFormComponent.getForm(Abstrac
> tFormComponent.java:93)
> org.apache.tapestry.form.PropertySelection.renderComponent(Pro
> pertySelection.java:120)
> org.apache.tapestry.AbstractComponent.render(AbstractComponent
> .java:896)
> org.apache.tapestry.BaseComponent.renderComponent(BaseComponen
> t.java:159)
> org.apache.tapestry.AbstractComponent.render(AbstractComponent
> .java:896)
> org.apache.tapestry.AbstractComponent.renderBody(AbstractCompo
> nent.java:673)
> org.apache.tapestry.components.RenderBlock.renderComponent(Ren
> derBlock.java:113)
> org.apache.tapestry.AbstractComponent.render(AbstractComponent
> .java:896)
> org.apache.tapestry.BaseComponent.renderComponent(BaseComponen
> t.java:159)
> org.apache.tapestry.AbstractComponent.render(AbstractComponent
> .java:896)
> org.apache.tapestry.AbstractComponent.renderBody(AbstractCompo
> nent.java:673)
> org.apache.tapestry.components.RenderBody.renderComponent(Rend
> erBody.java:86)
> org.apache.tapestry.AbstractComponent.render(AbstractComponent
> .java:896)
> org.apache.tapestry.AbstractComponent.renderBody(AbstractCompo
> nent.java:673)
> org.apache.tapestry.html.Body.renderComponent(Body.java:304)
> org.apache.tapestry.AbstractComponent.render(AbstractComponent
> .java:896)
> org.apache.tapestry.AbstractComponent.renderBody(AbstractCompo
> nent.java:673)
> tm.tapestry.components.Hull.renderComponent(Hull.java:129)
> org.apache.tapestry.AbstractComponent.render(AbstractComponent
> .java:896)
> org.apache.tapestry.BaseComponent.renderComponent(BaseComponen
> t.java:159)
> org.apache.tapestry.AbstractComponent.render(AbstractComponent
> .java:896)
> org.apache.tapestry.BaseComponent.renderComponent(BaseComponen
> t.java:159)
> org.apache.tapestry.AbstractComponent.render(AbstractComponent
> .java:896)
> org.apache.tapestry.AbstractPage.renderPage(AbstractPage.java:341)
> org.apache.tapestry.engine.RequestCycle.renderPage(RequestCycl
> e.java:411)
> org.apache.tapestry.engine.AbstractEngine.renderResponse(Abstr
> actEngine.java:775)
> org.apache.tapestry.engine.PageService.service(PageService.java:118)
> org.apache.tapestry.engine.AbstractEngine.service(AbstractEngi
> ne.java:913)
> org.apache.tapestry.ApplicationServlet.doService(ApplicationSe
> rvlet.java:238)
> org.apache.tapestry.ApplicationServlet.doGet(ApplicationServle
> t.java:199)
> javax.servlet.http.HttpServlet.service(HttpServlet.java:126)
>
> "detailsTitleField" is a property-selection.
>
> Obviously, it can't find the form ... which seems a little
> odd considering the tree nature of HTML.
>
> Anyone have an idea what I could be doing wrong/misunderstanding?
>
> TIA,
>
> John
>
> --
> John Meredith <ps...@t-online.de>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: tapestry-user-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: tapestry-user-help@jakarta.apache.org
>