OK. It's clicked. I was hoping to have a simple ajaxed submit link without having to create a fake property on the model object. No problem, I can see what I missed.
Thanks for your help Igor. Tim > you said it yourself: > > "Insure that the component identifier names match > the appropriate property names." > > what that says is that the model you get is the property of the model > object that is in the cpm with the name of component id. > > so since your links id is "foo" it will try to pull out the model > object from the cpm and call getfoo() on it, the result of which is > the model object of the link > > -igor > > > On Tue, Apr 8, 2008 at 12:52 PM, Tim Squires <[EMAIL PROTECTED]> wrote: >> I have read it - a few times over the last 3 years of using Wicket and >> even bought the book ;) >> >> It says >> >> "To use a CompoundPropertyModel, simply set one as the model for a >> container, such as a Form or a Page. Create the contained components >> with >> no model of their own. Insure that the component identifier names match >> the appropriate property names." >> >> The AjaxSubmitLink is picking-up the parent forms compound property >> model >> but only checking to see if the "mylink" property exists when onSubmit >> calls getModelObject(). >> >> I would like to get the Forms model via getModelObject but because it >> errors when called, I have to either set a false model on the >> AjaxSubmitLink or get the model object outside of the onSubmit, assign >> it >> to a final property and then use it in the onSubmit. >> >> I'm happy to admit that I'm doing something wrong but I cannot see what >> it >> is??? >> >> Thanks again, >> Tim >> >> >> >> > no, components do not randomly pick up models from their parents. i >> > would suggest reading the models wiki page. >> > >> > -igor >> > >> > >> > On Mon, Apr 7, 2008 at 3:11 PM, Tim <[EMAIL PROTECTED]> wrote: >> >> Thanks Igor but should it not pick-up the model from the Form? >> There's >> >> no >> >> constructor that takes a model. Should the AjaxSubmitLink(id, >> form) >> >> constructor be used with the Form that it's being added to? e..g >> >> >> >> MyForm extends Form { >> >> public MyForm(....){ >> >> .... >> >> add( new AjaxSubmitLink("mylink",this){ >> >> .... >> >> }); >> >> }} >> >> >> >> If it's already bound to a Form, should it not pick-up the model >> used >> >> by >> >> the form? >> >> >> >> Am I looking at the problem/solution the wrong way??? >> >> >> >> Thanks again, >> >> Tim >> >> >> >> >> >> >> >> > you forgot to give ajaxsubmitlink a model, so getmodelobject() >> will >> >> > either return null or a compound model.confirm - neither of which >> i >> >> > think you want. >> >> > >> >> > -igor >> >> > >> >> > >> >> > On Mon, Apr 7, 2008 at 1:00 PM, Tim Squires <[EMAIL PROTECTED]> >> wrote: >> >> >> Hi, >> >> >> >> >> >> When adding an AjaxSubmitLink, the onSubmit method tries to >> access >> >> a >> >> >> property of the model object that does not exists: >> >> >> >> >> >> ------------------- >> >> >> final AjaxSubmitLink confirmLink = new >> >> >> AjaxSubmitLink("confirm") { >> >> >> @Override >> >> >> public void onSubmit(final AjaxRequestTarget >> target, >> >> >> final Form form) { >> >> >> if (((Will) getModelObject()).getExecutor() >> != >> >> null) >> >> >> { >> >> >> willModalWindow.show(target); >> >> >> } else { >> >> >> warn("Please choose an executor."); >> >> >> target.addComponent(feedback); >> >> >> } >> >> >> } >> >> >> >> >> >> @Override >> >> >> public void onError(final AjaxRequestTarget >> target, >> >> >> final Form form) { >> >> >> target.addComponent(feedback); >> >> >> } >> >> >> }; >> >> >> >> >> >> add(confirmLink); >> >> >> ------------------- >> >> >> >> >> >> It tries to access the "confirm" property of the Model, in this >> >> case a >> >> >> Will object. >> >> >> >> >> >> ------------------- >> >> >> org.apache.wicket.WicketRuntimeException: No get method defined >> for >> >> >> class: >> >> >> class crystalmark.willfinder.model.Will expression: confirm >> >> >> at >> >> >> >> org.apache.wicket.util.lang.PropertyResolver.getGetAndSetter(PropertyResolver.java:433) >> >> >> at >> >> >> >> org.apache.wicket.util.lang.PropertyResolver.getObjectAndGetSetter(PropertyResolver.java:275) >> >> >> at >> >> >> >> org.apache.wicket.util.lang.PropertyResolver.getValue(PropertyResolver.java:84) >> >> >> at >> >> >> >> org.apache.wicket.model.AbstractPropertyModel.getObject(AbstractPropertyModel.java:113) >> >> >> at >> >> org.apache.wicket.Component.getModelObject(Component.java:1551) >> >> >> at >> >> >> >> crystalmark.willfinder.page.components.EditWillPanel$EditWillForm$5.onSubmit(EditWillPanel.java:183) >> >> >> at >> >> >> >> org.apache.wicket.ajax.markup.html.form.AjaxSubmitLink$1.onSubmit(AjaxSubmitLink.java:94) >> >> >> at >> >> >> >> org.apache.wicket.ajax.form.AjaxFormSubmitBehavior.onEvent(AjaxFormSubmitBehavior.java:128) >> >> >> ------------------- >> >> >> >> >> >> It's only when using the getModelObject method. If I get the >> Will >> >> >> object >> >> >> from else-where it works fine. >> >> >> >> >> >> Is this a problem with the way I'm using the model or a bug >> with >> >> >> AjaxSubmitLink? Should I add it to jira? >> >> >> >> >> >> Wicket 1.3.3 + JDK 1.6 + Tomcat 6 >> >> >> >> >> >> Thanks, >> >> >> Tim >> >> >> ------------------- >> >> >> http://www.tnwdb.com - Wicket Wills! >> >> >> >> >> >> >> >> >> >> --------------------------------------------------------------------- >> >> >> 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] >> >> > >> >> > >> >> >> >> >> >> >> >> --------------------------------------------------------------------- >> >> 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] >> > >> > >> >> >> >> --------------------------------------------------------------------- >> 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] > > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]