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(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
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 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
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] - 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
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 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
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]
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
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]