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.3.1 Reporter: Artur Wronski Assignee: Igor Vaynberg Fix For: 1.3.3 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. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.