wicket-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Paul Bors <p...@bors.ws>
Subject Re: Fundamental forms/models issue
Date Mon, 18 Feb 2013 18:55:50 GMT
Glad I could help, below is the API for Wicket 5's setResponsePage:
http://wicket.apache.org/apidocs/1.5/org/apache/wicket/Component.html
<C extends IRequestablePage<http://wicket.apache.org/apidocs/1.5/org/apache/wicket/request/component/IRequestablePage.html>>

void*setResponsePage<http://wicket.apache.org/apidocs/1.5/org/apache/wicket/Component.html#setResponsePage(java.lang.Class)>
*(java.lang.Class<C> cls)
Sets the page that will respond to this request<C extends
IRequestablePage<http://wicket.apache.org/apidocs/1.5/org/apache/wicket/request/component/IRequestablePage.html>>

void*setResponsePage<http://wicket.apache.org/apidocs/1.5/org/apache/wicket/Component.html#setResponsePage(java.lang.Class,
org.apache.wicket.request.mapper.parameter.PageParameters)>*(java.lang.Class<C>
cls, PageParameters<http://wicket.apache.org/apidocs/1.5/org/apache/wicket/request/mapper/parameter/PageParameters.html>parameters)
Sets the page class and its parameters that will respond to this requestvoid
*setResponsePage<http://wicket.apache.org/apidocs/1.5/org/apache/wicket/Component.html#setResponsePage(org.apache.wicket.Page)>
*(Page <http://wicket.apache.org/apidocs/1.5/org/apache/wicket/Page.html>page)
Sets the page that will respond to this request


What that dosen't mention is what page instance is used or when/how a new
Page is constructed.

Give the Page maps a read to grasp that concept:
https://cwiki.apache.org/WICKET/page-maps.html
~ Thank you,
    Paul Bors

PS: You could try purchasing an older version of Wicket in Action or some
other book too, that's how I picked up Wicket :)
http://wicket.apache.org/learn/books/

On Mon, Feb 18, 2013 at 1:34 PM, Michael Chandler <
Michael.Chandler@onassignment.com> wrote:

> 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:paul@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.Chandler@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-unsubscribe@wicket.apache.org
> For additional commands, e-mail: users-help@wicket.apache.org
>
>

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