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]