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 <users@tapestry.apache.org> > 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]