Thank you -- I did upgrade and this does seem to be working as expected. Of course, now I'm having a hard time replicating the weird behavior in the previous (beta2) version :)

Thanks for the help-

Hans

Andreas Andreou wrote:
I believe that's a tacos problem...
Can you try the latest beta-3 from
http://tacos.sourceforge.net/nightly/
and tell us if it works?



Hans Lellelid wrote:

Hi,

This started out as a question on the Tacos list, but it seems like
the real issue for me is related to page injection, property setting,
and session persistence.

The problem that I am facing is that properties that are annotated as
@Persist do not seem to actually be persisting in the session when
they are set by another page (using page injection).

For example, I have a ContactList page that uses injection to retrieve
a ContactEdit page -- and sets a Contact property on the ContactEdit
page:

public abstract class ContactList extends BasePage {
public IPage doAddContact()
    {
        ContactEdit page = getContactEdit();
        Contact contact = new Contact();
        page.setContact(contact);
        return page;
    }

    @InjectPage("ContactEdit")
    public abstract ContactEdit getContactEdit();

/* ... */

}

In my ContactEdit page I have annotated that the contact property is
persistent:

public abstract class ContactEdit extends BasePage {
  /* ... */
    @Persist(value="session")
    public abstract Contact getContact();
    public abstract void setContact(Contact c);
}

Indeed, when the ContactEdit.html template loads, I can access
'contact' property in the template and it does appear to be set to the
(not NULL) value set by ContactList.doAddContact().  However, when I
subsequently invoke a listener method on the ContactEdit page (e.g.
through tacos:AjaxDirectLink) then the getContact() method returns
null -- indicating, apparently, that the 'contact' property was not
actually persistent.

At that point, if I set the property (calling setContact()) to a
non-NULL value from a ContactEdit listener method, then getContact()
calls from subsequent listener methods (i.e. if I click the
AjaxDirectLink again) will return the not-NULL object -- so it does
appear to be correctly persisting once it is set from within the
ContactEdit page.

Is this something I'm misunderstanding about how property persistence
works -- especially related to invoking a page by @InjectPage?

I hope this example made sense; I'd be happy to try to rephrase or
simplify it if it doesn't.  Thanks in advance for any tips -

Hans


---------------------------------------------------------------------
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]

Reply via email to