Re: Clearing Session
You are right. I should not have remove the page from the constructor. I place *getPageMap().remove(this);* after the setResponsePage in all the pages. What is happening is From Page 1 to Page 2 when using the back button the page expired From Page 2 to Page 3 when using the back button the page *NOT* expiring From Page 3 to Page 4 when using the back button the page expired I do not know why is it so. From Page 2 to Page 3 I am sending an object that holds the input data. So, Could it be the reason for such a behavior. By the why in Page 2 if I call this.setEnabled(false); after *getPageMap().remove(this);* when using the browser back button the page is getting expired. Any idea what is happening?! Regards, Suad Johan Compagner wrote: You can't call remove from page map from Inside the page constructor!! it isn't even IN the pagemap yet because the page is not yet constructed and why do you think you do? why would you remove a page from the pagemap when you still construct it and want to use it also again as a request page (i see links on in...) public class WelcomePage extends BasePage { public WelcomePage() { add(new Link(RegistrationFormLink){ public void onClick() { setResponsePage(new RegisterationPage()); *getPageMap().remove(this);* } }); } } above code should work i hope. The only thing i don't know currently if it works correctly is that when you call remove maybe the detach phase of the page is then putting it back in (Matej? do will support this still with all the new changes??) johan On 10/27/07, Suad AlShamsi [EMAIL PROTECTED] wrote: I am using wicket 1.3 bita4 and all what really need is whenever the user is navigating using the browser back and forward button is to see page expired. Here is snap of my code. Can you please tell me what am doing wrong *Page 1 (Home Page) *public class WelcomePage extends BasePage { public WelcomePage() { add(new Link(RegistrationFormLink){ public void onClick() { setResponsePage(new RegisterationPage()); } }); *this.getPageMap().remove(this);* } } *Page 2 *public class RegisterationPage extends BasePage { private Individual user; public RegisterationPage() { user = new Individual(); add(new RegisterationForm(regForm, new CompoundPropertyModel(user))); *this.getPageMap().remove(this);* } private class RegisterationForm extends Form { public RegisterationForm(String name, CompoundPropertyModel model) { super(name, model); //Form Fields *** Adding some fields to the form public void onSubmit() { ConfirmationPage confPage = new ConfirmationPage(user); setResponsePage(confPage); *this.getPage().getPageMap().remove(this.getPage());* } } } *Page 3* public class ConfirmationPage extends BasePage { private Individual user; public ConfirmationPage(Individual ind) { add(new InputForm(confForm, new CompoundPropertyModel(user)); *this.getPageMap().remove(this);* } private class InputForm extends Form { public InputForm(String name, CompoundPropertyModel model) { super(name, model); //Form Fields ***adding Some fields } public void onSubmit() { setResponsePage(new SucessPage()); *this.getPage().getPageMap().remove(this.getPage());* } } } *Page 4* public class SucessPage extends BasePage { public SucessPage() { //Construct form feedback, and link panel and hook them up final FeedbackPanel feedback = new FeedbackPanel(feedback); add(feedback); *this.getPageMap().remove(this);* } } Regards, Suad * * Johan Compagner wrote: what do you mean you added the above call to all the pages? How do you do that? On 10/26/07, Suad AlShamsi [EMAIL PROTECTED] wrote: -- PageMap.clear should work but it is a bit strange call to do. Why do you want to delete all pages? But what do you say nothing happens? What do you expect to see happening? These pages are public pages used for user registration which takes number of steps to complete. I dont want the user to use the back button to reset any of the previous forms. I want the page to expired in case the user is using the back button. But the pages are not getting expired. Page.getPageMap().remove(Page) I added the above call to all the pages but it only expires the first page. Suad Johan Compagner wrote: PageMap.clear should work but it is a bit strange call to do. Why do you want to delete all pages? But what do you say nothing happens? What do you expect to see happening? And with Page.remove() is the wrong call,
Re: Clearing Session
Removing the page is throwing the following exception: Caused by: java.lang.IllegalStateException: Cannot remove [Page class = com.individual.registration.RegisterationPage, id = 6, version = 0] from null parent! at org.apache.wicket.Component.remove(Component.java:1896) What I have is 3 pages. Page 1 has a form component, Page 2 has another form components, and Page 3 is has a label component. After submitting the form on page 1 the user will be directed to page 2 and after submitting the form the user will be directed to page 3. What I want to prevent the user from using the browser back button after submitting the form. The user should get the page has been expired. I tried getPageMap().clear(); after setResponsePage(page); in onSubmit() but nothing happen. Then I tried getPage().remove(); I got the exception mentioned earlier. Please help me. Regards, Suad Johan Compagner wrote: call remove page then the page is gone and can't be reconstructed anymore Ofcourse people can still use the back button (if the url did change from the first to the second page) and when they do that they will get a page expired. Or maybe on the second page you have some javascript that clears the window history somehow. johan On 10/25/07, Suad AlShamsi [EMAIL PROTECTED] wrote: Your right, actually what I need is to stop the browser back button, which means I need to disable the default second cache, writting to the file system. How can I do so. Another question, what is a temporary session, how can been created, when to use it? Johan Compagner wrote: you go to another page so the previous page is not in the session anymore (wicket 1.3) On 10/24/07, Suad AlShamsi [EMAIL PROTECTED] wrote: Hi All, After submitting a form the input data will be persisted in the database and the user will be directed to another page. How can I clear the input data from the session?! - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Clearing Session
PageMap.clear should work but it is a bit strange call to do. Why do you want to delete all pages? But what do you say nothing happens? What do you expect to see happening? And with Page.remove() is the wrong call, that is the default call to remove a component from its parent Maybe we should implement that that it call the pagemap and removes itself (but it is final at the moment) Page.getPageMap().remove(Page) johan On 10/26/07, Suad AlShamsi [EMAIL PROTECTED] wrote: Removing the page is throwing the following exception: Caused by: java.lang.IllegalStateException: Cannot remove [Page class = com.individual.registration.RegisterationPage, id = 6, version = 0] from null parent! at org.apache.wicket.Component.remove(Component.java:1896) What I have is 3 pages. Page 1 has a form component, Page 2 has another form components, and Page 3 is has a label component. After submitting the form on page 1 the user will be directed to page 2 and after submitting the form the user will be directed to page 3. What I want to prevent the user from using the browser back button after submitting the form. The user should get the page has been expired. I tried getPageMap().clear(); after setResponsePage(page); in onSubmit() but nothing happen. Then I tried getPage().remove(); I got the exception mentioned earlier. Please help me. Regards, Suad Johan Compagner wrote: call remove page then the page is gone and can't be reconstructed anymore Ofcourse people can still use the back button (if the url did change from the first to the second page) and when they do that they will get a page expired. Or maybe on the second page you have some javascript that clears the window history somehow. johan On 10/25/07, Suad AlShamsi [EMAIL PROTECTED] wrote: Your right, actually what I need is to stop the browser back button, which means I need to disable the default second cache, writting to the file system. How can I do so. Another question, what is a temporary session, how can been created, when to use it? Johan Compagner wrote: you go to another page so the previous page is not in the session anymore (wicket 1.3) On 10/24/07, Suad AlShamsi [EMAIL PROTECTED] wrote: Hi All, After submitting a form the input data will be persisted in the database and the user will be directed to another page. How can I clear the input data from the session?! - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Clearing Session
Hi All, After submitting a form the input data will be persisted in the database and the user will be directed to another page. How can I clear the input data from the session?! - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Clearing Session
you go to another page so the previous page is not in the session anymore (wicket 1.3) On 10/24/07, Suad AlShamsi [EMAIL PROTECTED] wrote: Hi All, After submitting a form the input data will be persisted in the database and the user will be directed to another page. How can I clear the input data from the session?! - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]