You are not testing back button versioning a all.
What you do with the backbutton and a refresh is create a new page.
Because yiu are doing a bookmarkable (homepage) refresh.
Also if you want backbutton support for your counter you have to
register that Change to the page.
Johan
On 3/15/08, James Carman <[EMAIL PROTECTED]> wrote:
> On 3/15/08, Matej Knopp <[EMAIL PROTECTED]> wrote:
> > Your page implementing Externalizable breaks wicket. Wicket relies of
> > Page#writeReplace, writeObject, readObject being called. Are you sure
> > you're no seing any stacktrace?
> >
>
> Ok, I think I'm getting somewhere with this. I changed my exploration
> code a bit. Here's my HomePage class (sorry for the verbose email,
> but I'm trying to understand this better):
>
> public class HomePage extends WebPage
> {
> private static final long serialVersionUID = 1L;
> private static final Logger log =
> LoggerFactory.getLogger(HomePage.class);
>
> private int counter;
>
> /**
> * Constructor that is invoked when page is invoked without a session.
> *
> * @param parameters Page parameters
> */
> public HomePage( final PageParameters parameters )
> {
> // Add the simplest type of label
> add(new Label("message", new LoadableDetachableModel()
> {
> protected Object load()
> {
> return "I've been called " + counter++ + " times.";
> }
> }));
> add(new Link("refreshLink")
> {
> public void onClick()
> {
> log.info("I'm being called on object with identity " +
> System.identityHashCode(HomePage.this));
> setResponsePage(HomePage.this);
> }
> });
> }
>
>
> protected Object writeReplace() throws ObjectStreamException
> {
> final Object replacement = super.writeReplace();
> log.info("I'm (identity " + System.identityHashCode(this) + ")
> being write replaced by object " + replacement);
> return replacement;
> }
> }
>
> And, here's the HomePage.html file:
>
> <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="refreshLink">here</a> to refresh me!
> </p>
> </body>
> </html>
>
> Now, I see the expected behavior in IE7, but not in Firefox. When I
> hit the back button in IE7, the page is actually refreshed. When I
> hit the back button in Firefox, it isn't. Does the page completely
> have to refresh (when hitting "back") to get the functionality to work
> properly? I would think that the link URL would tell you enough to go
> get the proper version of the page. What I expect to happen is that
> when you hit back and click the link, it should display "I have been
> called 1 times." Am I understanding what's supposed to be going on
> correctly? Here's what happens with IE7:
>
> 1. View the HomePage (counter == 0)
>
> INFO - HomePage - I'm (identity 8940240) being
> write replaced by object [Page class =
> com.carmanconsulting.wicket.demo.HomePage, id = 0, version = 0]
>
> 2. Click the link (counter == 1)
>
> INFO - HomePage - I'm being called on object with
> identity 8940240
> INFO - HomePage - I'm (identity 8940240) being
> write replaced by object [Page class =
> com.carmanconsulting.wicket.demo.HomePage, id = 0, version = 0]
>
> 3. Hit the back button (counter == 0)
>
> INFO - HomePage - I'm (identity 4113761) being
> write replaced by object [Page class =
> com.carmanconsulting.wicket.demo.HomePage, id = 1, version = 0]
>
> 4. Click the link again (counter == 1)
>
> INFO - HomePage - I'm being called on object with
> identity 4113761
> INFO - HomePage - I'm (identity 4113761) being
> write replaced by object [Page class =
> com.carmanconsulting.wicket.demo.HomePage, id = 1, version = 0]
>
> And, here's what happens with Firefox:
>
> 1. View the HomePage (counter == 0)
>
> INFO - HomePage - I'm (identity 5068149) being
> write replaced by object [Page class =
> com.carmanconsulting.wicket.demo.HomePage, id = 0, version = 0]
>
> 2. Click the link (counter == 1)
>
> INFO - HomePage - I'm being called on object with
> identity 5068149
> INFO - HomePage - I'm (identity 5068149) being
> write replaced by object [Page class =
> com.carmanconsulting.wicket.demo.HomePage, id = 0, version = 0]
>
> 3. Hit the back button (counter == 0)
>
> *** No Output! ***
>
> 4. Click the link again (counter == 2)
>
> INFO - HomePage - I'm being called on object with
> identity 5068149
> INFO - HomePage - I'm (identity 5068149) being
> write replaced by object [Page class =
> com.carmanconsulting.wicket.demo.HomePage, id = 0, version = 0]
>
> ---------------------------------------------------------------------
> 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]