On Jan 9, 2008 10:23 AM, Franz Amador <[EMAIL PROTECTED]> wrote:
> Okay, that makes sense. If I define a component via @Component and refer to
> it in the template using t:id, then the template will use my defined
> component. Otherwise, the template will create an anonymous component. Is
> that right?
Yes. And you can still provide an explicit t:id even if you define
the component type in the template.
>
> The beaneditform variable in my example didn't do anything but show the
> problem, but in real life I'm using it to report validation errors:
>
> void onValidate() {
> if (...)
> beaneditform.recordError(messages.get("..."));
> }
>
> What I really want, however, is to be able to mark the particular bad field,
> not just the form as a whole, but I can't find a way to get a reference to
> the fields created by the BeanEditForm. I asked about this before and got no
> answer, which leads me to suspect that there isn't any way to do it yet. Is
> this something planned for BeanEditForm?
There isn't a really good way to accomplish this, short of using the
BeanEditForm's per-property override, and supplying your own TextField
(or whatever) with a known id.
>
> By the way, is there a list of Tapestry5 annotations and what they do? I
> haven't seen one on the web site or the wiki.
I think the JavaDoc is a perfectly good reference.
>
>
> ----- Original Message ----
> From: Howard Lewis Ship <[EMAIL PROTECTED]>
> To: Tapestry users <[email protected]>
> Sent: Tuesday, January 8, 2008 7:00:54 PM
> Subject: Re: T5: beaneditform component error message
>
>
> @Component defines a component, it does not inject an existing
> component. You've ended up with two BeanEditForm components, one
> named "beaneditform" (from the Java code) and one anonymous (from the
> template). Change the <t:beaneditform> to, say <form
> t:id="beaneditform" object="bean"/> ... or (better, for your example),
> remove the beaneditform variable.
>
> On Jan 8, 2008 2:38 PM, Franz Amador <[EMAIL PROTECTED]> wrote:
> > I'm getting this error in the console:
> >
> > [ERROR] FormPage Embedded component(s) beaneditform are defined
> within component class com.[...].pages.FormPage, but are not present in the
> component template.
> >
> > when I have this template:
> >
> >
> > <head>
> > <title>Form</title>
> > </head>
> > <body>
> > <h1>Form</h1>
> > <t:beaneditform object="bean" />
> > </body>
> > </html>
> >
> > and this page class:
> >
> > public class FormPage {
> > @Persist
> > private Bean bean;
> > @Component
> > private BeanEditForm beaneditform;
> >
> > which I presume is coming from the @Component. The question is: why
> can't it find the beaneditform component? It sure looks like it's
> there to me. Does it have some other name?
> >
> > thanks,
> > Franz
> >
> >
> >
>
>
>
> --
> Howard M. Lewis Ship
>
> Creator Apache Tapestry and Apache HiveMind
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>
>
>
>
--
Howard M. Lewis Ship
Creator Apache Tapestry and Apache HiveMind
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]