To conclude, my issues stemmed from not properly linking from page to page. I
did a lot of this:
BookmarkablePageLink<String>("link", MyClass.class);
Instead of this:
Link<String>("link") {
public void onClick() {
setResponsePage(new MyClass());
}
}
Oopsy!
I can see how the former might benefit me down the road, but not for general
use.
Thanks again everyone.
Mike
-----Original Message-----
From: Michael Chandler [mailto:[email protected]]
Sent: Monday, February 18, 2013 10:35 AM
To: [email protected]
Subject: RE: Fundamental forms/models issue
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:[email protected]]
Sent: Monday, February 18, 2013 10:08 AM
To: [email protected]
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 <
[email protected]> 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: [email protected]
For additional commands, e-mail: [email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]