[ 
https://issues.apache.org/jira/browse/WICKET-2353?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Artur Wronski updated WICKET-2353:
----------------------------------

          Description: 
The bug is still in 1.4-rc5 despite the fact that has status fixed in 1.3.3:
https://issues.apache.org/jira/browse/WICKET-1391

  was:
It seems that the value for fields that are made invisible because a 
surrounding enclosure is actually lost on submit of the form.

Consider the following code:

public class HomePage extends WebPage {
    private MyObject myObject;
    
    public HomePage(final PageParameters parameters) {
        myObject = new MyObject();
        myObject.setField1("field1Value");
        myObject.setField2("field2Value");
       
    Form f = new Form("f", new CompoundPropertyModel(myObject));
        add(f);

        f.add(new TextField("field1").setVisible(false));
        f.add(new TextField("field2"));
       
        f.add(new Button("submit") {
            @Override public void onSubmit() {
                System.out.println("Field 2 value should be 'field2Value' but 
is : " + myObject.getField2());
            }
        });
    }

    class MyObject implements Serializable {
        private String field1;
        private String field2;
       
        public String getField1() {
            return field1;
        }
        public void setField1(String field1) {
            this.field1 = field1;
        }
        public String getField2() {
            return field2;
        }
        public void setField2(String field2) {
            this.field2 = field2;
        }
    }
}

With the following markup:

<form wicket:id="f">
    <wicket:enclosure child="field1">
         <input type="text" wicket:id="field1"/>
         <input type="text" wicket:id="field2"/>
    </wicket:enclosure>
    <input type="submit" wicket:id="submit"/>
</form>

Field1 keeps it's value onSubmit, but the value for field2 is lost, and my 
model object has null in field2. If I implicitly call setVisible(false) on the 
TextField for field2, the value is kept onSubmit.

Igor put better like this I guess:

when the page renders none of the fields are shown. after submit,
however, myobject.getfield1() is still "field1value" but
myobject.getfield2() is null - which implies that textfield2 is still
processed even though it is inside an enclosure that has been hidden.

    Affects Version/s:     (was: 1.3.1)
                       1.4-RC5
                       1.4-RC6

> CLONE -<wicket:enclosure> bug: setObject(null) called for excplicitly 
> invisible fields in a non-visible enclosure
> -----------------------------------------------------------------------------------------------------------------
>
>                 Key: WICKET-2353
>                 URL: https://issues.apache.org/jira/browse/WICKET-2353
>             Project: Wicket
>          Issue Type: Bug
>          Components: wicket
>    Affects Versions: 1.4-RC5, 1.4-RC6
>            Reporter: Artur Wronski
>            Assignee: Igor Vaynberg
>             Fix For: 1.3.3
>
>
> The bug is still in 1.4-rc5 despite the fact that has status fixed in 1.3.3:
> https://issues.apache.org/jira/browse/WICKET-1391

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to