Thanks for the answer. Do you see any mistakes in my code
that can be the reason for my problems?

On Wed, 4 Jul 2012 21:20:31 +0200
Martin Grigorov <mgrigo...@apache.org> wrote:

> On Wed, Jul 4, 2012 at 9:14 PM, Andre Schütz <wic...@faustas.de> wrote:
> > I found out that I get the same pageID in both
> > browsers for the MyFormPage. Should the pageID
> > not be different when I open this site in two
> > different browsers?
> 
> No. Page id is session scoped.
> 
> >
> > Thanks,
> > Andre
> >
> > On Wed, 4 Jul 2012 19:38:28 +0200
> > Andre Schütz <wic...@faustas.de> wrote:
> >
> >> No idea? Anybody?
> >>
> >> On Tue, 3 Jul 2012 22:50:04 +0200
> >> Andre Schütz <wic...@faustas.de> wrote:
> >>
> >> > Hello,
> >> >
> >> > here is an abstract code example of my problem with my application.
> >> >
> >> > ####################
> >> > # StartPage
> >> > ####################
> >> > class StartPage extends WebPage {
> >> >   public StartPage(PageParameters parameters) {
> >> >     add(new SearchForm("searchForm", parameters));
> >> >   }
> >> >
> >> >   private class SearchForm extends StatelessForm {
> >> >     public SearchForm(String id, final PageParameters params) {
> >> >       super(id);
> >> >       init();
> >> >     }
> >> >
> >> >     private void init() {
> >> >       Button startButton = new Button("button_search") {
> >> >         @Override
> >> >         public void onSubmit() {
> >> >           PageParamerters p = new PageParameters();
> >> >           // some additional checks with the parameters
> >> >           ....
> >> >           setResponsePage(MyFormPage.class, p);
> >> >         }
> >> >       }
> >> >     }
> >> >   }
> >> > }
> >> >
> >> > #################
> >> > # MyFormPage
> >> > #################
> >> > class MyFormPage extends WebPage {
> >> >   public MyFormPage(PageParameters parameters) {
> >> >     super(parameters);
> >> >     Model<MySearchModel> model = new Model<MySearchModel>() {
> >> >       MySearchModel msm = new MySearchModel();
> >> >
> >> >       @Override
> >> >       public MySearchModel getObject() {
> >> >         return msm;
> >> >       }
> >> >
> >> >       @Override
> >> >       public void setObject(MySearchModel newModel) {
> >> >         this.msm = newModel;
> >> >       }
> >> >     }
> >> >
> >> >     CompundPropertyModel<MySearchModel> cpm = new 
> >> > CompoundPropertyModel<MySearchModel>(model);
> >> >     add(new AdvancedSearchForm("asForm", cpm));
> >> >   }
> >> >
> >> >   private class AdvancedSearchForm extends StatelessForm<MySearchModel> {
> >> >     private String name = null;
> >> >
> >> >     public AdvancedSearchForm (String id, IModel<MySearchModel> model) {
> >> >       super(id, model);
> >> >       init(model);
> >> >     }
> >> >
> >> >     private void init(IModel<MySearchModel> model) {
> >> >       IModel<List<String>> classes = new 
> >> > LoadableDetachableModel<List<String>>() {
> >> >         @Override
> >> >         public List<String> load() {
> >> >           List<String> classes = HelperClass.getClasses();
> >> >           Collections.sort(classes);
> >> >           return classes;
> >> >         }
> >> >       }
> >> >
> >> >       IChoiceRenderer<Object> rendererClasses = new 
> >> > IChoiceRenderer<Object>() {
> >> >         public Object getDisplayValue(Object obj) {
> >> >           return obj;
> >> >         }
> >> >
> >> >         public String getIdValue(Object obj, int index) {
> >> >           return obj.toString();
> >> >         }
> >> >       };
> >> >       CheckBoxMultipleChoice<String> classesChoice =
> >> >                     new CheckBoxMultipleChoice<String>("classes",
> >> >                             classes,
> >> >                             rendererClasses);
> >> >       add(classesChoice);
> >> >
> >> >       TextField<String> tf = new TextField<String>("name", new 
> >> > PropertyModel<String>(this, "name"));
> >> >       add(tf);
> >> >
> >> >       add(new Button("searchbutton_search") {
> >> >         @Override
> >> >         public void onSubmit() {
> >> >           makeSubmit();
> >> >         }
> >> >       });
> >> >     }
> >> >
> >> >     /**
> >> >      * Do the submit and got to the response page
> >> >      */
> >> >     private void makeSubmit() {
> >> >       MySession s = (MySession)getSession();
> >> >       MySearchModel modelObject = this.getModelObject();
> >> >
> >> >       if (!s.mySearchModelExists(modelObject.hashCode())) {
> >> >         s.setMySearchModel(modelObject);
> >> >       }
> >> >
> >> >       PageParameters p = new PageParameters();
> >> >       // following method creates parameters from the model
> >> >       p = MyParameterHelper.preparePageParameters(p, modelObject);
> >> >       setResponsePage(MyFinalPage.class, p);
> >> >     }
> >> >   }
> >> > }
> >> >
> >> > ####################
> >> > # MySearchModel
> >> > ####################
> >> >
> >> > public class SearchModel implements Serializable {
> >> >   private String name = null;
> >> >   private List<String> classes = null;
> >> >
> >> >   public void setName(String newName) {
> >> >     name = newName;
> >> >   }
> >> >
> >> >   public void setClasses(List<String> newClasses) {
> >> >     classes = newClasses;
> >> >   }
> >> >
> >> >   public String getName() {
> >> >     return name;
> >> >   }
> >> >
> >> >   public List<String> getClasses() {
> >> >     return classes;
> >> >   }
> >> > }
> >> >
> >> > The process:
> >> >
> >> > (0) I open the Opera Browser.
> >> > (1) I click on the button of the StatelessForm (SearchForm) in the 
> >> > StartPage class.
> >> > (2) The MyFormPage site is displayed.
> >> > (3) I select some classes and click the button in the AdvancedSearchForm.
> >> > (4) The MyFinalPage site is displayed.
> >> > (5) I open the Firefox Browser.
> >> > (6) I see the StartPage and click the button in the SearchForm.
> >> > (7) The MyFormPage is displayed and the classes from step (3) are 
> >> > selected.
> >> > (8) Additionally, I added a System.out.println(model.toString) before 
> >> > the line:
> >> > CompundPropertyModel<MySearchModel> cpm = new 
> >> > CompoundPropertyModel<MySearchModel>(model);
> >> > and looked into the Catalino.out logs. You can see that this is directly 
> >> > after the
> >> > initilization of the: Model<MySearchModel> model = new 
> >> > Model<MySearchModel>()
> >> > -> the logs tell me that the classes from step (3) are in the model
> >> > => You can see in the model above that the classes are initialized with 
> >> > null.
> >> >
> >> > Puh.
> >> > This is my problem. I hope that this code example gives a good 
> >> > imagination
> >> > of my problem.
> >> > I do not know why the classes from step 3 are in the model after a new 
> >> > initialization.
> >> >
> >> > I would be very thankful for a solution.
> >> >
> >> > Thanks,
> >> > Andre
> >> >
> >> >
> >> >
> >> >
> >> >
> >> > On Tue, 3 Jul 2012 20:16:13 +0200
> >> > Andre Schütz <wic...@faustas.de> wrote:
> >> >
> >> > > There is one important information that I had forgotten to
> >> > > mention. The link on my start page is not a link. It is a button
> >> > > from within a form.
> >> > >
> >> > > Andre
> >> > >
> >> > > On Tue,  3 Jul 2012 11:41:36 +0200 (CEST)
> >> > > wic...@faustas.de wrote:
> >> > >
> >> > > > Hello,
> >> > > >
> >> > > > thanks for the answers. At the moment I am not able to access my 
> >> > > > code but let
> >> > > > me explain the code in detail and give you some additional examples. 
> >> > > > I think
> >> > > > the idea with the stateful behavior could be right but I do not 
> >> > > > understand the
> >> > > > reason.
> >> > > >
> >> > > > In detail.
> >> > > >
> >> > > > - I have a starting page where a Link is constructed that depending 
> >> > > > on the available
> >> > > > PageParameters links to the second page with or without 
> >> > > > PageParameters:
> >> > > >
> >> > > > p.. PageParameters
> >> > > >
> >> > > > setResponsePage(MyPage2.class, p) or setResponsePage(MyPage2.class) 
> >> > > > or
> >> > > >
> >> > > > - After clicking the link on the starting page, the MyPage2 will be 
> >> > > > opened and
> >> > > > the constructor adds the elements to the page. A Form will be added 
> >> > > > and gets
> >> > > > a Model that is created in the constructor:
> >> > > >
> >> > > > MyModel model = new MyModel();
> >> > > >
> >> > > > The MyModel has two fields.
> >> > > > class MyModel {
> >> > > >   private String text;
> >> > > >   private List<String> classes;
> >> > > >   public void setText ..
> >> > > >   public void setClasses...
> >> > > >   public String getText ...
> >> > > >   public List<String> getClasses...
> >> > > > }
> >> > > >
> >> > > > The "classes" field is pre-filled with 3 entries in the MyModel 
> >> > > > class.
> >> > > >
> >> > > > Before the end of the constructor, my Form is added with:
> >> > > > add(new MyForm("id", new CompoundPropertyModel(model)));
> >> > > >
> >> > > > When I submit the form, the MyPage3 is opened and the values from
> >> > > > the MyForm are used.
> >> > > >
> >> > > > When I click back to my starting page and click on the link to 
> >> > > > MyPage2,
> >> > > > the selected values from the first click to this page are filled in 
> >> > > > the
> >> > > > MyModel. I printed the values of MyModel directly after the line:
> >> > > > MyModel model = new MyModel()
> >> > > > Normally, the pre-filled values should be in the classes variable. 
> >> > > > BUT ...
> >> > > > I have the selected values from the first call of the MyPage2.
> >> > > > That's my miracle :)
> >> > > >
> >> > > > Thanks for any additional help
> >> > > > Andre
> >> > > >
> >> > > > ----- Original Message -----
> >> > > > From: mgrigo...@apache.org
> >> > > > To: users@wicket.apache.org
> >> > > > Date: 03.07.2012 07:44:54
> >> > > > Subject: Re: Model is not created
> >> > > >
> >> > > >
> >> > > > > On Mon, Jul 2, 2012 at 11:45 PM, Andre Schütz <wic...@faustas.de> 
> >> > > > > wrote:
> >> > > > >> Hello,
> >> > > > >>
> >> > > > >> I have a problem with the creation of a model in one of my pages.
> >> > > > >> It works as follows:
> >> > > > >>
> >> > > > >> I have a link that uses setResponsePage(new MyPage(parameters)) 
> >> > > > >> on the click
> >> > > > >
> >> > > > > I'd recommend to use setResponsePage(MyPage.class, parameters) 
> >> > > > > instead
> >> > > > > in this case. This way you will have a nice looking url and the 
> >> > > > > page
> >> > > > > may stay stateless if there are no stateful components/behaviors in
> >> > > > > it.
> >> > > > > If you know the parameters earlier then you can even use
> >> > > > > BookmarkablePageLink("id", MyPage.class, parameters) - this will 
> >> > > > > save
> >> > > > > you a http redirect.
> >> > > > >
> >> > > > >> with parameters as PageParameters.
> >> > > > >> At the MyPage site, the constructor creates a:
> >> > > > >> IModel<MyModel> model = new IModel<MyModel>() {
> >> > > > >>   public void setObject ..
> >> > > > >>   public MyModel getObject..
> >> > > > >> }
> >> > > > >>
> >> > > > >> This variable is used to create a CompoundPropertyModel for a 
> >> > > > >> Form.
> >> > > > >>
> >> > > > >> The first time when I click on my link to the MyPage site, 
> >> > > > >> everything
> >> > > > >> is fine. At the second time, the MyModel variable is not empty. 
> >> > > > >> The
> >> > > > >> variable is filled with the selected values from the first time 
> >> > > > >> when
> >> > > > >> I clicked on the link to the MyPage site.
> >> > > > >>
> >> > > > >> I do not understand this behavior. Normally, the MyModel variable
> >> > > > >> should be empty and not filled with the last selection.
> >> > > > >>
> >> > > > >> Has someone an idea?
> >> > > > >>
> >> > > > >> Thanks,
> >> > > > >> Andre
> >> > > > >>
> >> > > > >> --
> >> > > > >> Andre Schütz <wic...@faustas.de>
> >> > > > >>
> >> > > > >> ---------------------------------------------------------------------
> >> > > > >> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
> >> > > > >> For additional commands, e-mail: users-h...@wicket.apache.org
> >> > > > >>
> >> > > > >
> >> > > > >
> >> > > > >
> >> > > > > --
> >> > > > > Martin Grigorov
> >> > > > > jWeekend
> >> > > > > Training, Consulting, Development
> >> > > > > http://jWeekend.com
> >> > > > >
> >> > > > > ---------------------------------------------------------------------
> >> > > > > To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
> >> > > > > For additional commands, e-mail: users-h...@wicket.apache.org
> >> > > >
> >> > > >
> >> > > > ---------------------------------------------------------------------
> >> > > > To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
> >> > > > For additional commands, e-mail: users-h...@wicket.apache.org
> >> > >
> >> > >
> >> > > --
> >> > > Andre Schütz <wic...@faustas.de>
> >> > >
> >> > > ---------------------------------------------------------------------
> >> > > To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
> >> > > For additional commands, e-mail: users-h...@wicket.apache.org
> >> >
> >> >
> >> > --
> >> > Andre Schütz <wic...@faustas.de>
> >> >
> >> > ---------------------------------------------------------------------
> >> > To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
> >> > For additional commands, e-mail: users-h...@wicket.apache.org
> >>
> >>
> >> --
> >> Andre Schütz <wic...@faustas.de>
> >>
> >> ---------------------------------------------------------------------
> >> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
> >> For additional commands, e-mail: users-h...@wicket.apache.org
> >
> >
> > --
> > Andre Schütz <wic...@faustas.de>
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
> > For additional commands, e-mail: users-h...@wicket.apache.org
> >
> 
> 
> 
> -- 
> Martin Grigorov
> jWeekend
> Training, Consulting, Development
> http://jWeekend.com
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
> For additional commands, e-mail: users-h...@wicket.apache.org


-- 
Andre Schütz <wic...@faustas.de>

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
For additional commands, e-mail: users-h...@wicket.apache.org

Reply via email to