Oh my gosh, Paul.  You just nailed my problem I think.

I'm doing this:

setResponsePage(MyPage.class);

Instead of this:

setResponsePage(new MyPage());

Thanks for the link.  Clearly, I have more reading to do!

Thanks all!

Mike

-----Original Message-----
From: Paul Bors [mailto:p...@bors.ws] 
Sent: Monday, February 18, 2013 10:08 AM
To: users@wicket.apache.org
Subject: Re: Fundamental forms/models issue

What are you really trying to accomplish here?



I think you're on the right path only one thing I would mention, the page 
constructor is not called only once per application life cycle. Same page can 
be constructed multiple times if you have a link going to that page and you 
calll setResponsePage(new MyPage()).



More on detachable models:

https://cwiki.apache.org/WICKET/detachable-models.html



~ Thank you,

   Paul Bors



On Mon, Feb 18, 2013 at 12:47 PM, Michael Chandler < 
michael.chand...@onassignment.com> wrote:

> Good morning/afternoon everyone.
>
> I'm having a basic problem fully deciphering how to best manage my 
> forms, specifically related to Models that are attached to forms.  
> Since a Wicket WebPage has it's constructor invoked only one time in 
> the application lifecycle, I'm failing to fully understand how to 
> present a form that has a model bound to it without inadvertently 
> sharing that instance of the Model with every user of the application.  
> It seems like a fundamental issue that I'm failing to fully grasp and could 
> use some input.
>
> As an example, I have the following in my constructor:
>
> LoadableDetachableModel<Job> jobModel = new 
> LoadableDetachableModel<Job>() {
>
>      private static final long serialVersionUID = 1L;
>
>      @Override
>      protected Job load() {
>            Job job = (Job) EntityFactory.getInstance().getBean("job");
>
>            // if we're editing an existing job, load the object
>            if (jobId >= 1) {
>                 job.load(jobId);
>            }
>
>            return job;
>      }
>
> };
>
> I later create a form and after adding it in my constructor, bind the 
> model to it as follows:
>
> jobForm.setModel(new CompoundPropertyModel<Job>(jobModel));
>
> As you can imagine, every user session from this point on now has that 
> instance of a Job object bound to that form due to these declarations 
> being in the page constructor.  I have come a long way on my own, but 
> I'm at a point where I clearly do not have a full grasp of how to best 
> approach this.  I suspect I can potentially override an instance of a 
> Model's
> getObject() method for more dynamic behavior, but I'm concerned about 
> writing code that becomes too verbose when perhaps there's a 
> better/tighter way to handle this.  Can anyone advise me?
>
> Many thanks!
>
> Mike Chandler
>
>

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

Reply via email to