There are a few ways around this... one is to clear the list on your own when
the page is visited in the normal way - in pageBeginRender...

Another is to create and use a new PersistenceStrategy.. if you search the wiki
(or google for "PersistenceStrategy tapestry wiki") you'll find some
implementations,
i.e. http://wiki.apache.org/tapestry/SessionPagePersistence (but
that's currently
inaccessible for me)

On Thu, Oct 1, 2009 at 6:13 PM, seshu babu <seshum...@gmail.com> wrote:
> Thanks ! Andreas
>
> It works after I moved setUsers() in renderComponent to @InitialValue
> annotation like this
>   �...@persist
>   �...@initialvalue("Collections.EMPTY_LIST"
>  but table contents are getting displayed even without pressing search
> button for the second time when I came back to the this page which has got
> this table.
> So Basically the data persistence should be lost once I move out of the page
> which has the table component. For that I changed @Persist to
> @Persist("page") but it doesn't look like page scope is present. I am
> getting this error
>
> [ +/- ] Exception: Exception invoking listener method search of component
> phone/AddPhoneUser/searchForm: Error at Annotation
> @org.apache.tapestry.annotations.Persist(value=page) of public abstract
> java.util.List org.sipfoundry.sipxconfig.site.user.UserSearch.getUsers():
> Unknown property persistence strategy
> 'page'.<https://scs2.asiapac.nortel.com:8443/sipxconfig/phone/AddPhoneUser,selectUserForm.sdirect#>
>
> How to go about this ?
>
> Thanks,
> Seshu
>
> The
>
>
>
> On Thu, Oct 1, 2009 at 7:29 PM, Andreas Andreou <andy...@di.uoa.gr> wrote:
>
>> why do you need to call setUsers() inside
>> renderComponent(IMarkupWriter writer, IRequestCycle cycle) ?
>>
>> Since the value is now persisted, you won't need to call the setter.
>>
>> Is the source available online?
>>
>> On Thu, Oct 1, 2009 at 3:31 PM, seshu babu <seshum...@gmail.com> wrote:
>> > Activation context is only present in Tapestry 5 I think. I am using
>> > Tapestry 4.
>> >
>> > So I tried persisting getUsers() method but I am getting this error. Am I
>> > missing something?
>> >
>> -----------------------------------------------------------------------------------------------------------
>> > �...@persist
>> >    public abstract List getUsers();
>> >
>> -----------------------------------------------------------------------------------------------------------
>> > [ +/- ] Exception: Error: Change to persistent property users of
>> > phone/AddPhoneUser/searchForm has been ignored. Persistent properties may
>> > only be changed prior to the rendering of the response page.
>> > org.apache.hivemind.ApplicationRuntimeException
>> > Stack Trace:
>> >
>> >    *
>> >
>> org.apache.hivemind.impl.StrictErrorHandler.error(StrictErrorHandler.java:39)
>> >    * org.apache.hivemind.impl.ErrorLogImpl.error(ErrorLogImpl.java:40)
>> >    *
>> >
>> org.apache.tapestry.record.PageRecorderImpl.observeChange(PageRecorderImpl.java:101)
>> >    * org.apache.tapestry.Tapestry.fireObservedChange(Tapestry.java:677)
>> >    * $UserSearch_83.setUsers($UserSearch_83.java)
>> >    *
>> >
>> org.sipfoundry.sipxconfig.site.user.UserSearch.renderComponent(UserSearch.java:90)
>> >    *
>> > org.apache.tapestry.AbstractComponent.render(AbstractComponent.java:724)
>> >    *
>> >
>> org.apache.tapestry.services.impl.DefaultResponseBuilder.render(DefaultResponseBuilder.java:187)
>> >    *
>> >
>> org.apache.tapestry.AbstractComponent.renderBody(AbstractComponent.java:538)
>> >    *
>> > org.apache.tapestry.form.FormSupportImpl.render(FormSupportImpl.java:503)
>> >    * org.apache.tapestry.form.Form.renderComponent(Form.java:217)
>> >
>> -----------------------------------------------------------------------------------------------------
>> >
>> > Thanks,
>> > Seshu
>> >
>> > On Wed, Sep 30, 2009 at 8:43 PM, Norman Franke <nor...@myasd.com> wrote:
>> >
>> >> I've had that happen. Query parameters either weren't @Persist-ed or
>> >> otherwise not part of the activation context, so when clicking the sort
>> >> links, it forgot what it was querying. Which does bring up an
>> interesting
>> >> point: allowing a different activation context for tables to keep the
>> >> persisted data to a minimum, since there are limits to the amount of
>> data
>> >> that an activation context can hold due to URL limits.
>> >>
>> >> Norman Franke
>> >> Answering Service for Directors, Inc.
>> >> www.myasd.com
>> >>
>> >>
>> >>
>> >>
>> >> On Sep 30, 2009, at 7:00 AM, Andreas Andreou wrote:
>> >>
>> >>  You understand correctly that the rows are fetched from getUsers
>> >>> method for the first
>> >>> time - BUT when clicking on the columns it will NOT sort the rows based
>> on
>> >>> earlier fetched rows...
>> >>>
>> >>> It needs to call getUsers again (and then do the sorting) - is there
>> >>> any logic in that
>> >>> method that makes it return empty list? Perhaps you need to persist
>> >>> something in
>> >>> the session to make the subsequent getUsers() calls work correctly.
>> >>>
>> >>> On Wed, Sep 30, 2009 at 9:14 AM, seshu babu <seshum...@gmail.com>
>> wrote:
>> >>>
>> >>>> Hi,
>> >>>>
>> >>>> I am newly learning tapestry.
>> >>>>
>> >>>> The Rendered rows vanish if I click on the columns (for sorting of
>> >>>> rows).here is the .page file
>> >>>>
>> >>>>
>> --------------------------------------------------------------------------------------------------------------
>> >>>>
>> >>>>    - P R O P E R T I E S
>> >>>>     -->
>> >>>>  <property name="selections" />
>> >>>>  <property name="currentUser" />
>> >>>>  <inject property="coreContext" object="spring:coreContext"/>
>> >>>>  <!--
>> >>>>     - C O M P O N E N T S
>> >>>>     -->
>> >>>>  <component id="userTable" type="common/Table">
>> >>>>   <binding name="source" value="users"/>
>> >>>>   <binding name="columns" value="literal:*
>> >>>> userName,lastName,firstName,aliases:aliasesString"/>
>> >>>>   <binding name="initialSortColumn" value="literal:lastName"/>
>> >>>>   <binding name="row" value="currentUser"/>
>> >>>>   <binding name="selections" value="selections"/>
>> >>>>  </component>
>> >>>>
>> >>>>
>> --------------------------------------------------------------------------------------------------------------
>> >>>>
>> >>>> I understand that the rows are fetched from getUsers method for the
>> first
>> >>>> time & further clicking on the columns it will sort the rows based on
>> >>>> earlier fetched rows.
>> >>>> What's causing these rows to get lost once feteched into table?
>> >>>>
>> >>>> I use tapesty 4.1. In the above page common/Table is custom table
>> >>>> component
>> >>>> of type contrib:TableView.
>> >>>>
>> >>>> Thanks for your help,
>> >>>> Seshu
>> >>>>
>> >>>>
>> >>>
>> >>>
>> >>> --
>> >>> Andreas Andreou - andy...@apache.org - http://blog.andyhot.gr
>> >>> Tapestry / Tacos developer
>> >>> Open Source / JEE Consulting
>> >>>
>> >>> ---------------------------------------------------------------------
>> >>> To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
>> >>> For additional commands, e-mail: users-h...@tapestry.apache.org
>> >>>
>> >>>
>> >>
>> >
>> >
>> > --
>> > Regards,
>> > Seshu
>> >
>>
>>
>>
>> --
>> Andreas Andreou - andy...@apache.org - http://blog.andyhot.gr
>> Tapestry / Tacos developer
>> Open Source / JEE Consulting
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
>> For additional commands, e-mail: users-h...@tapestry.apache.org
>>
>>
>
>
> --
> Regards,
> Seshu
>



-- 
Andreas Andreou - andy...@apache.org - http://blog.andyhot.gr
Tapestry / Tacos developer
Open Source / JEE Consulting

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
For additional commands, e-mail: users-h...@tapestry.apache.org

Reply via email to