我在xhtml页面中有一个bean类和一个selectBooleanCheckbox。我希望在单击框时,应在辅助bean中设置值。
这是代码:
<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方法中的值。
答案 0 :(得分:5)
仅在按下提交按钮时才填充表单数据的模型。如果要对服务器进行部分更新,则需要发送AJAX请求。幸运的是,从JSF 2开始,引入<f:ajax>
标签非常简单。它为实现UIComponent
接口的ClientBehaviorHolder
实例添加了ajax功能,即能够触发ajax请求的组件。
要对竞争对手进行部分更新,您需要在execute
标记的<f:ajax>
属性中指定其客户ID。由于execute
属性的默认值计算为@this
,或标记所附加的组件。只要您只想更新给定的<h:selectBooleanCheckbox>
,您就可以像在您的复选框中嵌套纯<f:ajax />
标签一样简单,即:
<h:selectBooleanCheckbox id="provisioningTargetCollector" value="#{targetSource.provisioningTargetCollector}">
<f:ajax />
</h:selectBooleanCheckbox>