That's Hibernate entity, so I don't think ValueEncoder is necessary with tapestry-hibernate.
On Thu, Jul 3, 2014 at 11:28 PM, Lance Java <lance.j...@googlemail.com> wrote: > If you contribute an appropriate ValueEncoder for Entity, you won't need > onActivate() / onPassivate(). You can use @PageActivationContext instead. > > > On 3 July 2014 06:11, Ilya Obshadko <ilya.obsha...@gmail.com> wrote: > > > Oops my bad. I always try to forget about onPassivate () > > That should fix it, thanks! > > > > > > On Thu, Jul 3, 2014 at 1:46 PM, Geoff Callender < > > geoff.callender.jumpst...@gmail.com> wrote: > > > > > What's "t:ac"? In the POST's Form Data, "t:ac" is the key of the field > > > that carries the page's activation context. > > > > > > > > > On 3 Jul 2014, at 12:41 pm, Geoff Callender < > > > geoff.callender.jumpst...@gmail.com> wrote: > > > > > > > Not a bug. Form bubbles up its context in the PREPARE_FOR_SUBMIT > event. > > > Here's a typical way to deal with it: > > > > > > > > void onPrepareForSubmit(Long id) { > > > > this.id = id; > > > > entity = retrieveFromDatabase(id); > > > > } > > > > > > > > What should you pass in the context? At a minimum I'd recommend > passing > > > all the parameters of its enclosing component. Then, in > > > onPrepareForSubmit(...) you can restore the component's parameter > values > > > (like we restored this.id above) before proceeding. In this way a > > > component can behave independently rather than depending on its page. > > When > > > components get deeply nested then this is essential. > > > > > > > > > > > > If you want the page's onActivate(Long id) to be invoked, then you'll > > > need the *page's* context to include id, which you achieve by doing > this > > in > > > the page: > > > > > > > > Long onPassivate() { > > > > return id; > > > > } > > > > > > > > I'm guessing your page doesn't do that. Before clicking submit, the > > page > > > URL would look like this... > > > > > > > > http://localhost:8080/application/page/12345 > > > > > > > > ...and, on submit, the Form Data would include: > > > > > > > > t:ac:12345 > > > > > > > > Geoff > > > > > > > > > > > > On 3 Jul 2014, at 11:59 am, Ilya Obshadko <ilya.obsha...@gmail.com> > > > wrote: > > > > > > > >> I'm not sure if this is a bug or not. > > > >> > > > >> Here's a scenario: > > > >> > > > >> Page.java > > > >> > > > >> public class Page { > > > >> @Property > > > >> private Entity entity; > > > >> > > > >> void onActivate ( Long id ) { > > > >> entity = retrieveFromDatabase ( id ); > > > >> } > > > >> > > > >> } > > > >> > > > >> Page.tml: > > > >> > > > >> <t:mycomponent entity="entity"/> > > > >> > > > >> MyComponent.tml: > > > >> > > > >> <t:form p:context="entity.id"> > > > >> ... > > > >> </t:form> > > > >> > > > >> > > > >> AJAX is NOT used. If I get it right, form context must be passed to > > > >> enclosing page during form submission. However it doesn't work and > > > >> appropriate onActivate method is never called, although submission > URL > > > >> looks just like expected: > > > >> http://localhost:8080/application/page.mycomponent.form/12345 > > > >> > > > >> Am I missing something here? I'm using 5.4-beta6 > > > >> > > > >> > > > >> -- > > > >> Ilya Obshadko > > > > > > > > > > > > > > > > -- > > Ilya Obshadko > > > -- Ilya Obshadko