1

我在 xhtml 页面中有一个 bean 类和一个 selectBooleanCheckbox。我希望单击框时应在支持 bean 中设置值。

这是代码:

<h:selectBooleanCheckbox id="provisioningTargetCollector" 
                           value="#{targetSource.provisioningTargetCollector}">
                           </h:selectBooleanCheckbox>

豆类:

public boolean isProvisioningTargetCollector() {
    return _provisioningTargetCollector;
 }

 public void setProvisioningTargetCollector(boolean provisioningTargetCollector) {
     _provisioningTargetCollector = provisioningTargetCollector;
 }

但是 getter 和 setter 仅在页面加载时被调用。如何在单击复选框时在 bean 方法中设置值。

4

1 回答 1

5

只有在按下提交按钮时才会填充表单数据的模型。如果要对服务器进行部分更新,则需要发送 AJAX 请求。幸运的是,从 JSF 2 开始,引入<f:ajax>标签非常简单。它将ajax 功能添加到UIComponent实现ClientBehaviorHolder接口的实例中,即能够触发ajax 请求的组件。

要对竞争进行部分更新,您需要在标签的execute属性中指定其客户端 ID <f:ajax>。由于execute属性的默认值评估为@this,或者标签附加到的组件。只要您只想更新给定的<h:selectBooleanCheckbox>,您就可以像在您的复选框中嵌套一个纯标签一样简单<f:ajax />,即:

<h:selectBooleanCheckbox id="provisioningTargetCollector" value="#{targetSource.provisioningTargetCollector}">
    <f:ajax />
</h:selectBooleanCheckbox>
于 2014-08-29T13:30:17.597 回答