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.
Can someone confirm that this is a bug? Incase I'll create a JIRA-issue for it
and attach a quickstart.
-- Edvin
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]