Actually, I'm getting the same behavior with the ListEdit.
This seems to work if messageBody is a parameter rather than a regular
property, and I'll do that if I need to, but in this case the
TextArea's value isn't of interest outside the component. Is there
any way to fix this without exposing the TextArea's value?
On 8/17/05, Scott Wadden <[EMAIL PROTECTED]> wrote:
> You're a useful fellow Jesse :)
>
> Now that you mention it, I specifically remember reading something
> like that in Tapestry in Action. I'll try it with a ListEdit. Thanks
> a lot.
>
> On 8/17/05, Jesse Kuhnert <[EMAIL PROTECTED]> wrote:
> > You might try using a ListEdit component instead, I think Foreach
> > loops aren't safe inside forms, because they don't interact with the
> > hidden form input fields that keep track of which components to
> > expect...
> >
> > jesse
> > On 8/17/05, Scott Wadden <[EMAIL PROTECTED]> wrote:
> > > Hey folks. I'm really new to Tapestry, but it's definitely been a
> > > pleasure to use thus far. I'm a fairly experienced ASP.NET developer
> > > who's recently converted to Java, but I felt like I was stepping back
> > > into the dark ages with Struts and JSP. I find myself missing .NET
> > > less and less the more I use Tapestry however.
> > >
> > > Most of the stuff I've done so far has been pretty simple. Fairly
> > > static forms, and a couple of read only lists. However, I've recently
> > > run into problems trying to put form fields in a component that's
> > > contained in a Foreach loop. Basically, all the components seem to
> > > given the state of the last component rendered.
> > >
> > > I've created a very simple demo that illustrates my problem. It
> > > consists of a component that contains a TextArea, and a property to
> > > hold the TextArea's value. My page simply outputs a bunch of these
> > > inside of a loop. First the component, TestList.jwc, with the doctype
> > > removed:
> > >
> > > <component-specification>
> > > <property-specification name="messageBody" persistent="yes"/>
> > > <component id="newComp" type="TextArea">
> > > <binding name="value" expression="messageBody"/>
> > > </component>
> > > </component-specification>
> > >
> > > Now the component's template, TestList.html:
> > >
> > > <span jwcid="newComp" />
> > >
> > > And finally the page template, Home.html:
> > >
> > > <html>
> > > <body>
> > > <form jwcid="@Form">
> > > <div jwcid="@Foreach" source="ognl:{1, 2, 3, 4,
> > > 5}">
> > > <span jwcid="@TestList" />
> > > </div>
> > > <input type="submit" jwcid="@Submit" value="Submit form"
> > > />
> > > </form>
> > > </body>
> > > </html>
> > >
> > > I tried this in 3.03 and 4.0b4 (with the appropriate changes of
> > > course) and get exactly the same behavior. Whatever is in the final
> > > text area gets put into the other 4 whenever I submit the form. What
> > > do I have to do to get my component to maintain its own state in this
> > > sort of situation?
> > >
> > > Thank you very much,
> > >
> > > Scott
> > >
> > > ---------------------------------------------------------------------
> > > 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]
> >
> >
>
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]