OK, I've tried to create an unversioned page to keep the URL stable using following page code:
> public class DownloadFile extends TemplatePage { > > // Constants > ============================================================== > > private static final String FILE_PARAMETER = "file"; > > // Static > ================================================================= > > public static BookmarkablePageLink createLinkToPage(String id, String > file) { > final BookmarkablePageLink pageLink = new > BookmarkablePageLink(id, DownloadFile.class); > pageLink.setParameter(FILE_PARAMETER, file); > return pageLink; > } > > // Setup > ================================================================== > > public DownloadFile(PageParameters parameters) { > final String file = parameters.getString(FILE_PARAMETER); > if (file == null) { > throw new > RestartResponseAtInterceptPageException(Download.class); > } > > if (!getOurSession().isLicenseAgreed()) { > addContent(createLicenseFragment("contentPanel", > parameters)); > throw new RestartResponseAtInterceptPageException(this); > } > > addContent(createDownloadFragment("contentPanel", file)); > } > > // Utils > ================================================================== > > private Fragment createDownloadFragment(String id, String file) { > final Fragment fragment = new Fragment(id, "downloadFragment"); > fragment.add(new Label("file", file)); > return fragment; > } > > private Fragment createLicenseFragment(String id, final PageParameters > parameters) { > final Fragment fragment = new Fragment(id, "licenseFragment"); > fragment.add(new PageLink("accept", new IPageLink() { > public Page getPage() { > getOurSession().setLicenseAgreed(true); > return new DownloadFile(parameters); > } > > public Class getPageIdentity() { > return DownloadFile.class; > } > })); > return fragment; > } > > public boolean isVersioned() { > return false; > } > } Every page is mounted with QueryStringUrlCodingStrategy. On the Download page a link to this DownloadFile page is created using the above createLinkToPage() static method call which creates a link to "http://localhost:8080/smartcvs/download-file.html?file=win32jre" Curiously, when I click on it, the browser displays "http://localhost:8080/?wicket:interface=:2::" as URL. The "accept"-link occurs pointing to "http://localhost:8080/?wicket:interface=:2:border:contentPanel:accept::ILinkListener". When I click it, the browser displays "http://localhost:8080/?wicket:interface=:3::" as URL. Clicking the back-button shows the "http://localhost:8080/?wicket:interface=:2::" page with the "accept"-link, no matter whether I try it with Opera or FireFox. Tom Eelco Hillenius wrote: >> Regarding the back-button: it would be the best if the intermediate license >> agreement page would not occur when pressing the back-button, but instead >> the previous page (if any). Is something like that possible? > > What you need to achieve is that the URL stays stable. One way to > achieve this is to use panel replacement. E.g. when you click the > download page, you replace the main panel on your page with a panel > that displays the license agreement. If you turn off versioning for > that page, the URL will stay stable and thus if you push the back > button later, your browser will return to the first version of the > page. I think this should work for most browsers (maybe only not with > Opera). There are alternative ways to do this, including throwing > RestartResponseExceptions, using custom page factories and custom url > coding strategies. Or you can trick the browser using JavaScript, of > which I don't know too many details. > > Eelco ------------------------------------------------------------------------- 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 Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user