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;
 }

ただし、ゲッターとセッターはページの読み込み時にのみ呼び出されます。チェックボックスをクリックしてBeanメソッドに値を設定するにはどうすればよいですか。

4

1 に答える 1

5

送信ボタンが押されたときにのみ、モデルにフォームデータが入力されます。サーバーを部分的に更新したい場合は、AJAX リクエストを送信する必要があります。幸いなことに、JSF 2 以降では、<f:ajax>タグの導入により非常に簡単になりました。UIComponentインターフェイスを実装するインスタンスClientBehaviorHolder、つまり ajax リクエストをトリガーできるコンポーネントにajax 機能を追加します。

コンポーネントの部分的な更新を行うには、タグexecuteの属性でクライアント ID を指定する必要があります。attribute<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 に答える