我在xhtml页面中有一个bean类和一个selectBooleanCheckbox。我希望在单击该框时,应该在backingbean中设置该值。
这是代码:
<h:selectBooleanCheckbox id="provisioningTargetCollector"
value="#{targetSource.provisioningTargetCollector}">
</h:selectBooleanCheckbox>
Bean类:
public boolean isProvisioningTargetCollector() {
return _provisioningTargetCollector;
}
public void setProvisioningTargetCollector(boolean provisioningTargetCollector) {
_provisioningTargetCollector = provisioningTargetCollector;
}
但是getter和setter仅在页面加载时调用。如何在单击复选框时在bean方法中设置值。
只有在按下提交按钮时,模型才会填充表单数据。如果你想对服务器进行部分更新,你需要发送一个AJAX请求。幸运的是,从JSF2开始,引入了<f:ajax>
标签,它变得非常简单。它为实现ClientBehaviorHolder
接口的UIComponent
实例(即能够触发ajax请求的组件)添加了ajax功能。
要对compenets进行部分更新,您需要在<f:ajax>
标记的execute
属性中指定它们的客户端ID。由于execute
属性的默认值计算为@this
,或标记所附的组件。只要您只想更新给定的<h:selectBooleanCheckbox>
,就可以简单地在复选框中嵌套一个纯<f:ajax />
标记,即:
<h:selectBooleanCheckbox id="provisioningTargetCollector" value="#{targetSource.provisioningTargetCollector}">
<f:ajax />
</h:selectBooleanCheckbox>