Looks like at least one of the models in the session is not properly
initialized.
You have to do something like
private IModel model=new WhateverModel(null);
in your session.
Maurice
On Thu, Feb 21, 2008 at 8:41 PM, steviezz <[EMAIL PROTECTED]> wrote:
>
> Now getting
>
> RequestCycle.logRuntimeException(1399) | Attempt to set model object on null
> model of component: panelSearch:form:parentAreas
> java.lang.IllegalStateException: Attempt to set model object on null model
> of component: panelSearch:form:parentAreas
> at org.apache.wicket.Component.setModelObject(Component.java:2850)
>
>
>
>
>
>
> Mr Mean wrote:
> >
> > Don't add wicket components to the session, use models.
> > for example
> > class MySession extends WebSession
> > {
> > private IModel dropdown1=new WhateverModel(null); //etc for the others
> > // add getters() for models
> > }
> >
> > class PanelSearch extends Panel
> > {
> > public PanelSearch(String id)
> > {
> > super(id);
> > add(new
> >
> DropDownChoice("dropdown1",((MySession)Session.get()).getDropdown1(),myChoices)
> > }
> > }
> >
> > class SomePage extends WebPage
> > {
> > public SomePage()
> > {
> > super();
> > add(new PanelSearch("search"));
> > }
> > }
> >
> > The trick is always using the shared models in your session, that is
> > why you don't need setters for them and you have to initialize them
> > properly with some default.
> > That way the form automatically writes the new values to your session
> > and you don't have to do that manually.
> >
> > How much less code can you have?
> >
> > Maurice
> >
> > On Thu, Feb 21, 2008 at 1:44 PM, steviezz <[EMAIL PROTECTED]>
> > wrote:
> >>
> >> Thanks.
> >>
> >> I have already moved to using the session for storage. I've tried just
> >> adding the complete search panel object to the session in the search
> >> onsubmit() and fetching it again to add to the results page - this works
> >> and
> >> avoids some of my page reload and history issues (but adds a few
> >> others),
> >> but I presume its not really a good idea to store large object graphs in
> >> the
> >> session - maybe better to just store the selected values and rebuild the
> >> selection dropdowns as required. Plus, this will probably help me iron
> >> out
> >> my inconsistent dropdown state problems.
> >>
> >> But I'm still searching for a magic solution that does not involve
> >> writing
> >> too much code :-}
> >>
> >>
> >>
> >>
> >>
> >> Mr Mean wrote:
> >> >
> >> > I would not recommend what you are doing here.
> >> > What happens is that wicket removes the panel from the original page
> >> > and attaches it to the new page, making it impossible to use the
> >> > backbutton (because wicket will complain about a missing component).
> >> > Also this only works if the html of the new page uses the same
> >> > component id.
> >> >
> >> > It is better to store the selection for your dropdowns in the session
> >> > (as suggested before).
> >> > Then in the constructor of your PanelSearch you can check if the
> >> > session contains a value for the dropdowns and if that is the case set
> >> > it as the model for the dropdown. That way you don't have to pass the
> >> > state to every page.
> >> >
> >> > Maurice
> >> >
> >> > On Thu, Feb 21, 2008 at 11:35 AM, steviezz <[EMAIL PROTECTED]>
> >> > wrote:
> >> >>
> >> >> Answering my own questions.
> >> >>
> >> >> I can also pass the search panel to the results page from my form
> >> >> onSubmit:
> >> >>
> >> >> setResponsePage(new
> >> >> SearchResults(((PanelSearch)this.getParent()),
> >> >> search));
> >> >>
> >> >> Then, in the results page:
> >> >>
> >> >> public SearchResults(PanelSearch searchPanel, Search search) {
> >> >> add(searchPanel);
> >> >> }
> >> >>
> >> >> Mostly seems to work OK - panel on results page retains state from
> >> >> search
> >> >> page.
> >> >>
> >> >> Still getting some weird behaviour with the Ajax dropdowns on page
> >> >> refreshes
> >> >> - can get crazy state of North America, Canada, Kansas if I refresh
> >> the
> >> >> page
> >> >> between selection changes (old state gets mixed in with partial new
> >> >> state)
> >> >>
> >> >> Other thing to sort is how to reload panel state if user goes back
> >> to
> >> >> the
> >> >> home page (containing search panel) via a basic external navigation
> >> link
> >> >> -
> >> >> panel will be in its initial blank state. Perhaps I do need to look
> >> >> into
> >> >> loading from the session for this.
> >> >>
> >> >> But I'm starting to like Wicket - this kind of stuff takes much more
> >> >> code in
> >> >> other frameworks.
> >> >>
> >> >>
> >> >>
> >> >>
> >> >> steviezz wrote:
> >> >> >
> >> >> > I am now passing the search form model to the new page in the
> >> >> constructor,
> >> >> >
> >> >> > setResponsePage(new SearchResults(search));
> >> >> >
> >> >> > Works OK - I assume this is better than going through the session.
> >> >> >
> >> >> > But I have no idea (yet) how to reinitialise the search panel Ajax
> >> >> > widgets.
> >> >> >
> >> >> >
> >> >> >
> >> >> >
> >> >> > wicket user-2 wrote:
> >> >> >>
> >> >> >> store the backing model in the session and get it from the
> >> session,
> >> >> this
> >> >> >> will help you retain the state in all the cases
> >> >> >>
> >> >> >> Cheers
> >> >> >> Dipu
> >> >> >>
> >> >> >>
> >> >> >>
> >> >> >
> >> >> >
> >> >>
> >> >> --
> >> >> View this message in context:
> >> >>
> >>
> http://www.nabble.com/Combining-Ajax-and-non-Ajax-pages-tp15587166p15607263.html
> >> >>
> >> >>
> >> >> Sent from the Wicket - User mailing list archive at Nabble.com.
> >> >>
> >> >>
> >> >>
> >> ---------------------------------------------------------------------
> >> >> 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]
> >> >
> >> >
> >> >
> >>
> >> --
> >> View this message in context:
> >>
> http://www.nabble.com/Combining-Ajax-and-non-Ajax-pages-tp15587166p15610292.html
> >>
> >>
> >> Sent from the Wicket - User mailing list archive at Nabble.com.
> >>
> >>
> >> ---------------------------------------------------------------------
> >> 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]
> >
> >
> >
>
> --
> View this message in context:
> http://www.nabble.com/Combining-Ajax-and-non-Ajax-pages-tp15587166p15618707.html
>
>
> Sent from the Wicket - User mailing list archive at Nabble.com.
>
>
> ---------------------------------------------------------------------
> 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]