3

チェックボックスの状態に基づいて、ManagedBean で何らかのアクションを実行しようとしています。

チェックボックスはここにあります:

<p:selectBooleanCheckbox id="cb">
    <p:ajax listener="#{myBB.checkboxChanged}"/>
</p:selectBooleanCheckbox>

リスナー メソッドのシグネチャは次のとおりです。

public void checkboxChanged(AjaxBehaviorEvent event)

リスナー メソッドは期待どおりに呼び出されますが、チェックボックスの状態を取得する方法がわかりません (選択されている場合)。これは常に false です。

((SelectBooleanCheckbox)event.getSource()).isSelected()

チェックボックスの値をバインドする必要がありますか? チェックボックスはループ内の列挙型から生成され、それをバインドするブール値がないため、それを避けたいです(モデルは、列挙型のインスタンスを追加/削除するように設計されていますブール値のプロパティを設定しないコレクション)

Primefaces 3.5を使用してTomcat 6.0.36でコードを実行しています

JSF 実装は Apache Myfaces 2.1.10 です

4

2 に答える 2

2

ルーカスは正しかった、すべてがうまくいっている。問題は、フォームにボタンを配置しなかったことです。

<h:form>タグを追加したら、すべて問題ありません。

于 2013-09-18T17:49:14.037 に答える
2

あなたのコードは、Mojarra 2.2.1 と PrimeFaces 4.0RC1、Mojarra 2.0.3 と PrimeFaces 3.5 で期待どおりに動作します。残念ながら、手元に 2.1 がありませんでした。どのバージョンの PrimeFaces を使用していますか? 完全なコードを投稿できますか?

于 2013-09-18T14:32:17.750 に答える