Java Wicket布尔模型

Java Wicket布尔模型,java,model,wicket,Java,Model,Wicket,我想创建一个ajaxcheckbox,而不使用propertymodel将其连接到类属性。为什么示例中的代码不起作用?当用户选中或取消选中复选框时,布尔值不会更改 boolean show = false; AjaxCheckBox showBox = new AjaxCheckBox("showBox", new Model<Boolean>(show)){ //onUpdate stuff }; boolean show=false; AjaxCheckBox show

我想创建一个ajaxcheckbox,而不使用propertymodel将其连接到类属性。为什么示例中的代码不起作用?当用户选中或取消选中复选框时,布尔值不会更改

boolean show = false;
AjaxCheckBox showBox = new AjaxCheckBox("showBox", new Model<Boolean>(show)){
    //onUpdate stuff
};
boolean show=false;
AjaxCheckBox showBox=新的AjaxCheckBox(“showBox”,新型号(显示)){
//非更新材料
};

布尔值不会更改,因为
显示框
没有对原始变量的引用
show
。您刚刚用false初始化了
显示框
模型。您的代码相当于:

AjaxCheckBox showBox = new AjaxCheckBox("showBox", new Model<Boolean>(false)){
    //onUpdate stuff
};
AjaxCheckBox showBox=新的AjaxCheckBox(“showBox”,新型号(false)){
//非更新材料
};
如果要访问
显示框的模型值,可以使用
getModelObject()
,它将返回存储在
AjaxCheckBox
模型中的布尔值

wicket中的模型很复杂,但功能非常强大

为了进一步说明,
模型
保留其自身对值的引用
PropertyModel
保留对不同对象的引用,然后将值存储在该对象的属性中。查看
Model
的源代码,您会发现它非常简单