Page someBigPage = new YourBigPage(...); PageReference bigPageRef = someBigPage.getPageReference();
Now you just keep a hold of bigPageRef. When you want to go back to that page you just ask it for the page: Page reconstitutedBigPage = bigPageRef.getPage(); On Mon, May 17, 2010 at 10:35 AM, Zilvinas Vilutis <cika...@gmail.com> wrote: > Are there any patterns described how to use PageReference efficiently? > > > Žilvinas Vilutis > > Mobile: (+370) 652 38353 > E-mail: cika...@gmail.com > > > On Mon, May 17, 2010 at 9:55 AM, Jeremy Thomerson <jer...@wickettraining.com >> wrote: > >> You should use PageReference (Page#getPageReference()). >> >> -- >> Jeremy Thomerson >> http://www.wickettraining.com >> >> >> >> On Sun, May 16, 2010 at 11:52 PM, Rik van der Kleij <rikvdkl...@gmail.com >> >wrote: >> >> > Hi Jeremy, >> > >> > So an instance field inside a page that points to another page is also >> > something you should avoid? In our application we using this pattern a >> lot >> > (for going back to previous page) but it never seems to be any problem. >> So >> > probably because our pages don't consume a lot of memory. >> > >> > Regards, >> > Rik >> > >> > On 17 mei 2010, at 06:13, Jeremy Thomerson wrote: >> > >> > > In general, you should not pass references to components to other >> pages. >> > > That section on anonymous inner classes is telling you that when you >> > create >> > > an anonymous inner class and pass it to another page, you >> > > will inadvertently be passing a reference to the outer class, which is >> > > typically a page. This builds up memory and you will get a OOM. >> Passing >> > > models between pages is absolutely fine - as long as you're not >> > accidentally >> > > passing a bunch of other stuff with it (including large domain objects >> - >> > > which should be detached by using a detachable model). The page linked >> > to >> > > even says that you will often pass models between pages. >> > > >> > > -- >> > > Jeremy Thomerson >> > > http://www.wickettraining.com >> > > >> > > >> > > >> > > On Sun, May 16, 2010 at 11:05 PM, Rik van der Kleij < >> > rikvdkl...@gmail.com>wrote: >> > > >> > >> Hi Bernard and Mike, >> > >> >> > >> According to >> > >> >> > >> https://cwiki.apache.org/WICKET/best-practices-and-gotchas.html#BestPracticesandGotchas-AnonymousInnerclassessharingmodelscould >> eventually lead to Out of memory error. >> > >> >> > >> Holding a page reference in an instance field that points to another >> > page >> > >> looks the same but it is doesn't seems to be a problem. What's the >> > >> difference? >> > >> >> > >> Regards, >> > >> Rik >> > >> >> > >> >> > >> On 16 mei 2010, at 04:39, Michael O'Cleirigh wrote: >> > >> >> > >>> Hello, >> > >>> >> > >>> I'm not sure on the answer to your question about the anonymous inner >> > >> class but in general sharing models between pages can be a bad idea. >> > >>> >> > >>> The memory issues comes into play if the IModel is like Model and the >> > >> contained object is not transient (it is serialized as part of the >> > page). >> > >>> >> > >>> While Pages are serialized each page is serialized independently so >> on >> > >> page reload the IModel from the first page is no longer the same >> object >> > >> instance as the IModel from the second page. At deserialization time >> > the >> > >> page1.model.getObject().equals page2.model.getObject() but >> > >> page1.model.getObject() != page2.model.getObject(); so any changes to >> > either >> > >> model are not shared between then. >> > >>> >> > >>> This is not a problem if the model is loadable since the memory of >> the >> > >> page it is contained in doesn't matter as the value is loaded from the >> > >> backend db or some other independent data source like the httpsession, >> > or >> > >> with wicketApplication. >> > >>> >> > >>> You can see the same effect if you try and share a model between a >> > panel >> > >> and a ModelWindow that uses a PageCreator >> > >>> >> > >>> Hope this helps, >> > >>> >> > >>> Mike >> > >>>> Hi, >> > >>>> >> > >>>> Can someone explain me why it is a memory issue when an instance of >> an >> > >> anonymous IModel class is passed to another page to be shared, but it >> > seems >> > >> to be no problem when a page reference is passed to another page and >> is >> > put >> > >> in an instance field (for example to be used in a button to navigate >> > back to >> > >> previous page)? >> > >>>> >> > >>>> Many thanks. >> > >>>> >> > >>>> Regards, >> > >>>> Rik >> > >>>> >> > >>>> >> > >>>> >> > >>>> >> --------------------------------------------------------------------- >> > >>>> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org >> > >>>> For additional commands, e-mail: users-h...@wicket.apache.org >> > >>>> >> > >>>> >> > >>> >> > >>> >> > >>> --------------------------------------------------------------------- >> > >>> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org >> > >>> For additional commands, e-mail: users-h...@wicket.apache.org >> > >>> >> > >> >> > >> >> > >> --------------------------------------------------------------------- >> > >> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org >> > >> For additional commands, e-mail: users-h...@wicket.apache.org >> > >> >> > >> >> > >> > >> > --------------------------------------------------------------------- >> > To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org >> > For additional commands, e-mail: users-h...@wicket.apache.org >> > >> > >> > --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@wicket.apache.org