yes we can't convert null to a primitive (int or boolean)
because what is null for an int? (0? but that is wrong, it is not 0 it is
void)

For a boolean we could say null is false. But that would then be an
exception to the rule.

So you need your own converter on the object that can handle null values for
a boolean.

johan


On 1/9/07, Erik van Oosten <[EMAIL PROTECTED]> wrote:

Yes, correct. The model should be cleared as well.
And it indeed uses setDefaultFormProcessing(false).

The approach your describing below will throw exceptions for checkboxes:

WicketMessage: unable to set object null, model:
Model:classname=[wicket.model.PropertyModel]:attached=true:nestedModel=[
[EMAIL PROTECTED]
]:expression=[searchInHistoricNames]:propertyType=[null],
called with component [MarkupContainer [Component id = formelement, page
= nl.amsterdam.rbrb.web.search.SearchPage, path =
2:maincontent:searchform:form:formElements:2:inputfragment:
formelement.CheckBox,
isVisible = true, isVersioned = false]]

Root cause:

wicket.util.convert.ConversionException: Can't convert null value to a
primitive class: boolean for setting it on

[EMAIL PROTECTED]
at
wicket.util.lang.PropertyResolver$MethodGetAndSet.setValue(
Ljava.lang.Object;Ljava.lang.Object;Lwicket.util.convert.IConverter;)V(
PropertyResolver.java:838)
at
wicket.util.lang.PropertyResolver$ObjectAndGetSetter.setValue(
Ljava.lang.Object;Lwicket.util.convert.IConverter;)V(PropertyResolver.java
:447)
at
wicket.util.lang.PropertyResolver.setValue(Ljava.lang.String
;Ljava.lang.Object;Ljava.lang.Object;Lwicket.util.convert.IConverter;)V(
PropertyResolver.java:136)
at
wicket.model.AbstractPropertyModel.onSetObject(Lwicket.Component
;Ljava.lang.Object;)V(AbstractPropertyModel.java:182)
at
wicket.model.AbstractDetachableModel.setObject(Lwicket.Component
;Ljava.lang.Object;)V(AbstractDetachableModel.java:131)
at
wicket.Component.setModelObject(Ljava.lang.Object;)Lwicket.Component;(
Component.java:2042)
at
wicket.markup.html.form.FormComponent.updateModel()V(FormComponent.java
:840)
at
nl.amsterdam.rbrb.web.form.FormPanel$5.component(Lwicket.Component
;)Ljava.lang.Object;(FormPanel.java:214)
<--- the line with formComponent.updateModel();


Regards,
     Erik.




Johan Compagner wrote:
> why do you want to call updateFormComponentModels?
> You also want to clear all model data? So the models already did get
> some data from a previous request?
> (i take the reset button has setDefaultFormProcessing(false) ?)
>
> but why not do this:
>
>  form.visitChildren(FormComponent.class, new
> Component.IVisitor() {
>                     public Object component(Component component) {
>                         ((FormComponent) component).clearInput();
>                         ((FormComponent) component).updateModel();
>                         return
> Component.IVisitor.CONTINUE
>
>     _TRAVERSAL_BUT_DONT_GO_DEEPER;
>                         }
>                     });
>
>
> On 1/9/07, *Erik van Oosten* < [EMAIL PROTECTED]
> <mailto:[EMAIL PROTECTED]>> wrote:
>
>     Hi,
>
>     I am trying the make a reset button (clears all fields) with code
>     below.
>     According to the class comment of Form I can call
>     updateFormComponentModels, however that method is not visible.
>
>     What can I do to get the desired effect? I am using wicket-1.2.4.
>
>     Regards,
>          Erik.
>
>
>             // The reset button
>             Button resetButton = new Button("resetbutton") {
>                 /** [EMAIL PROTECTED] */
>                 protected void onSubmit() {
>                     // Clear the form
>                     form.visitChildren(FormComponent.class, new
>     Component.IVisitor() {
>                         public Object component(Component component) {
>                             ((FormComponent) component).clearInput();
>                             return
>     Component.IVisitor.CONTINUE_TRAVERSAL_BUT_DONT_GO_DEEPER;
>                         }
>                     });
>     *                form.updateFormComponentModels();   // <------
method
>     not visible
>     *            }
>             };
>             // Perform only the onSubmit, no validation
>             resetButton.setDefaultFormProcessing(false);
>             form.add(resetButton);
>
>
>
>     --
>     Erik van Oosten
>     http://www.day-to-day-stuff.blogspot.com/
>
>
>
-------------------------------------------------------------------------
>     Take Surveys. Earn Cash. Influence the Future of IT
>     Join SourceForge.net's Techsay panel and you'll get the chance to
>     share your
>     opinions on IT & business topics through brief surveys - and earn
cash
>
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
>     <
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV>
>     _______________________________________________
>     Wicket-user mailing list
>     Wicket-user@lists.sourceforge.net
>     <mailto:Wicket-user@lists.sourceforge.net>
>     https://lists.sourceforge.net/lists/listinfo/wicket-user
>
>
> ------------------------------------------------------------------------
>
>
-------------------------------------------------------------------------
> Take Surveys. Earn Cash. Influence the Future of IT
> Join SourceForge.net's Techsay panel and you'll get the chance to share
your
> opinions on IT & business topics through brief surveys - and earn cash
>
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
> ------------------------------------------------------------------------
>
> _______________________________________________
> Wicket-user mailing list
> Wicket-user@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/wicket-user
>

--
Erik van Oosten
http://www.day-to-day-stuff.blogspot.com/


-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share
your
opinions on IT & business topics through brief surveys - and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Wicket-user mailing list
Wicket-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wicket-user

-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys - and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Wicket-user mailing list
Wicket-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wicket-user

Reply via email to