Don't use page link!
Use PageLink only if you actually know what you are doing.
In this case: you should use the normal Link and set the responsepage
in the onclick.
Page1 {
... counter ...
add(new Link("page2") { onclick() { setResponsePage(new
Page2(Page1.this)); });
...
}
Page2 {
private Page returnToPage;
public Page2(Page returnTo) {
this.returnToPage = returnTo;
add(new Link("page1") { onclick() { setResponsePage(returnToPage); }});
}
}
Don't do the following, I repeat: the following is REALLY BAD:
add(new PageLink("page1", new Page1()));
add(new PageLink("page2", new Page2()));
add(new PageLink("page3", new Page3()));
Don't do that! It will exhaust your memory (you create pages upfront,
even when they never will be used). Remember what the 'new' keyword
does?
Martijn
On 6/26/07, Maurice Marrink <[EMAIL PROTECTED]> wrote:
> Sure :)
>
> In page 1 you do add(new PageLink("start", Foo.class));
> because you are using the class reference to your 2nd page here wicket
> always creates a new instance, the same happens with the pagelink on
> page2 where you go back to page 1.
>
> The trick is to tell wicket to use an existing page.
> so on page 1 we could do this
> add(new PageLink("start", new IPageLink()
> {
> public Page getPage()
> {
> //now we can decide which instance / constructor we use
> //in this case a new page is fine
> return new Foo(HelloWorld.this);
> }
> public Class getPageIdentity()
> {
> return Foo.class;
> }
> }));
>
> Because we now pass the first page to the 2nd page we need to alter
> the constructor of the 2nd page
>
> public Foo(Page returnPage) {
> add(new Label("message", "Foo page"));
> //this basically wraps your page in an IPageLink like we did manually on page
> 1
> Link pl = new PageLink("return", returnPage);
> pl.add(new AttributeAppender("class", new Model("return"), "
> "));
> add(pl);
> }
>
> And thats all there is to it.
> And i did not even have to use a regular link like i though we would
> have to in my previous response :)
>
> Maurice
>
> On 6/26/07, Leucht, Axel <[EMAIL PROTECTED]> wrote:
> > Thx for the quick answer, but being a newbie can I ask you to elaborate it
> > a little bit more?
> >
> > Regards
> >
> > /Axel
> >
> >
> > >>-----Ursprüngliche Nachricht-----
> > >>Von: [EMAIL PROTECTED]
> > >>[mailto:[EMAIL PROTECTED] Auftrag
> > >>von Maurice
> > >>Marrink
> > >>Gesendet: Dienstag, 26. Juni 2007 11:07
> > >>An: [email protected]
> > >>Betreff: Re: [Wicket-user] newbie-Question
> > >>
> > >>
> > >>You need to pass a reference for page 1 to page 2 and then instead of
> > >>using a pagelink on page2 to return to page1 use a regular link which
> > >>sets the responsepage to the instance of page 1 you passed to page 2.
> > >>
> > >>Maurice
> > >>
> > >>On 6/26/07, Leucht, Axel <[EMAIL PROTECTED]> wrote:
> > >>> Sorry if this is a dumb question and has been answered
> > >>hundred times but I couldn't find any answer to the following
> > >>question.
> > >>>
> > >>> I do have two HTML pages. Page one contains a link which
> > >>displays the number on clicks the user executed. The second
> > >>link jumps to page 2. Page 2 just displays a link to go back
> > >>to page 1.
> > >>>
> > >>> Assume that user clicks 5 times on the ClickCounter link in
> > >>page 1 and hence the link displays as 'This link is clicked 5
> > >>times'. When the user the switches to page 2 and immediately
> > >>goes back to page 1 the counter is reset to 0 and rendered as
> > >>'This link is clicked 0 times'.
> > >>>
> > >>> What am I doing wrong here? I assumed that clicking on the
> > >>return-button on page 2 goes "back" to the original session
> > >>in page 1 ?!
> > >>>
> > >>> Here is my Java classes:
> > >>> -- page 1 ---
> > >>> public class HelloWorld extends WebPage implements Serializable {
> > >>> public HelloWorld() {
> > >>> add(new Label("message", "Foo World!"));
> > >>> add(new PageLink("start", Foo.class));
> > >>> final ClickCount count1 = new ClickCount();
> > >>> Link link1 = new Link("link1") {
> > >>> public void onClick() {
> > >>> count1.clicks++;
> > >>> }
> > >>> };
> > >>> link1.add(new Label("label1", new Model() {
> > >>> public java.lang.Object
> > >>getObject(Component component) {
> > >>> return
> > >>Integer.toString(count1.clicks);
> > >>> }
> > >>> }));
> > >>> add(link1);
> > >>> }
> > >>>
> > >>> class ClickCount implements Serializable {
> > >>> private int clicks = 0;
> > >>> }
> > >>> }
> > >>> --- page 2 ---
> > >>> public class Foo extends WebPage {
> > >>> public Foo() {
> > >>> add(new Label("message", "Foo page"));
> > >>> Link pl = new PageLink("return", HelloWorld.class);
> > >>> pl.add(new AttributeAppender("class", new
> > >>Model("return"), " "));
> > >>> add(pl);
> > >>> }
> > >>> }
> > >>> /Axel
> > >>>
> > >>>
> > >>--------------------------------------------------------------
> > >>-----------
> > >>> This SF.net email is sponsored by DB2 Express
> > >>> Download DB2 Express C - the FREE version of DB2 express and take
> > >>> control of your XML. No limits. Just data. Click to get it now.
> > >>> http://sourceforge.net/powerbar/db2/
> > >>> _______________________________________________
> > >>> Wicket-user mailing list
> > >>> [email protected]
> > >>> https://lists.sourceforge.net/lists/listinfo/wicket-user
> > >>>
> > >>
> > >>--------------------------------------------------------------
> > >>-----------
> > >>This SF.net email is sponsored by DB2 Express
> > >>Download DB2 Express C - the FREE version of DB2 express and take
> > >>control of your XML. No limits. Just data. Click to get it now.
> > >>http://sourceforge.net/powerbar/db2/
> > >>_______________________________________________
> > >>Wicket-user mailing list
> > >>[email protected]
> > >>https://lists.sourceforge.net/lists/listinfo/wicket-user
> > >>
> >
> > -------------------------------------------------------------------------
> > This SF.net email is sponsored by DB2 Express
> > Download DB2 Express C - the FREE version of DB2 express and take
> > control of your XML. No limits. Just data. Click to get it now.
> > http://sourceforge.net/powerbar/db2/
> > _______________________________________________
> > Wicket-user mailing list
> > [email protected]
> > https://lists.sourceforge.net/lists/listinfo/wicket-user
> >
>
> -------------------------------------------------------------------------
> This SF.net email is sponsored by DB2 Express
> Download DB2 Express C - the FREE version of DB2 express and take
> control of your XML. No limits. Just data. Click to get it now.
> http://sourceforge.net/powerbar/db2/
> _______________________________________________
> Wicket-user mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/wicket-user
>
--
Wicket joins the Apache Software Foundation as Apache Wicket
Join the wicket community at irc.freenode.net: ##wicket
Wicket 1.2.6 contains a very important fix. Download Wicket now!
http://wicketframework.org
-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
Wicket-user mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/wicket-user