All,

I am trying to understand page serialization/deserialization a bit
better, so I create a Quickstart project and started tinkering.  I
modified the HomePage class as follows:

public class HomePage extends WebPage implements Externalizable
{
    private static final Logger log = LoggerFactory.getLogger(HomePage.class);
    private static final long serialVersionUID = 1L;
    private int counter;

    public HomePage(final PageParameters parameters)
    {
        add(new Label("message", new Model()
        {
            public Object getObject()
            {
                return "I've been called " + counter++ + " times.";
            }
        } ) );

        add(new Link("refresh")
        {
            public void onClick()
            {
                log.info("My id is " + System.identityHashCode(HomePage.this));
            }
        } );
    }

    public void writeExternal(ObjectOutput out) throws IOException
    {
        log.info("I'm being serialized!");
    }

    public void readExternal(ObjectInput in) throws IOException,
ClassNotFoundException
    {
        log.info("I'm being deserialized!");
    }
}

And, my html template is as follows:

<html>
    <head>
        <title>Wicket Quickstart Archetype Homepage</title>
    </head>
    <body>
        <strong>Wicket Quickstart Archetype Homepage</strong>
        <br/><br/>
        <span wicket:id="message">message will be here</span>
        <p>
            Click <a href="." wicket:id="refresh">here</a> to refresh!
        </p>
    </body>
</html>


Maybe I'm just not understanding this correctly (entire possible), but
here's what I tried:

1.  Load the home page.
2.  Click the "refresh" link
3.  Hit the back button
4.  Click the "refresh" link again

Now, every time I do that, it updates the "counter" variable every
time I click the "refresh" link.  When I hit the back button after the
link is clicked, the link points to
"http://localhost:8080/?wicket:interface=:1:refresh::ILinkListener::";.
 I would assume that when I clicked the refresh link after doing the
back button that the counter wouldn't update (it'd be 1).  Also, the
"I'm being deserialized" is never called.  Am I misunderstanding?

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to