单击selectbooleancheckbox设置bean值

时间:2014-08-29 13:06:46

标签: jsf jsf-2 selectbooleancheckbox

我在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方法中的值。

1 个答案:

答案 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>