wicket-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Michael Chandler <Michael.Chand...@onassignment.com>
Subject Fundamental forms/models issue
Date Mon, 18 Feb 2013 17:47:16 GMT
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


Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message