Re: AjaxSubmitLink accessing model object non-existent property
you can, just give the cpm reference to link as the model. -igor On Wed, Apr 9, 2008 at 1:31 AM, Tim Squires <[EMAIL PROTECTED]> wrote: > 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 > >> f
Re: AjaxSubmitLink accessing model object non-existent property
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(AbstractProper
Re: AjaxSubmitLink accessing model object non-existent property
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 > >> >>
Re: AjaxSubmitLink accessing model object non-existent property
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] >> >> >> >> >> > >> > --
Re: AjaxSubmitLink accessing model object non-existent property
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]
Re: AjaxSubmitLink accessing model object non-existent property
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]
Re: AjaxSubmitLink accessing model object non-existent property
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]
AjaxSubmitLink accessing model object non-existent property
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]