下のような2つのクラスがあったときに、CheckのsetCheckedがないとsubmit時にエラーがでるのにisCheckedはなくても(下のクラスもisCheckedを使わないように修正する)エラーにならないのは何でだろう?CheckBoxの状態を調べるときにisCheckedは見ないで変数を直接見に行ってるのだろうか?
public class Check { private boolean checked; public Check(){ checked = true; } public void setChecked(boolean checked){ this.checked = checked; } public boolean isChecked(){ return this.checked; } }
import org.apache.wicket.markup.html.WebPage; import org.apache.wicket.markup.html.basic.Label; import org.apache.wicket.markup.html.form.Form; import org.apache.wicket.markup.html.form.CheckBox; import org.apache.wicket.model.AbstractReadOnlyModel; import org.apache.wicket.model.PropertyModel; public class PropertyModelTestPage extends WebPage{ private Check check; public PropertyModelTestPage(){ check = new Check(); Form<Void> form = new Form<Void>("form"); CheckBox checkbox = new CheckBox("checkbox", new PropertyModel<Boolean>(check, "checked")); Label checkedLabel = new Label("label", new AbstractReadOnlyModel<String>(){ @Override public String getObject(){ return check.isChecked() ? "true" : "false"; } }); form.add(checkbox); add(form); add(checkedLabel); } }