2017-12-31 100 views
0

バッキングにselectBooleanCheckboxを、ここでJSFコンポーネントです:hのID属性を取得する方法:だから豆

<h:selectBooleanCheckbox id="cb#{index}" value="#{backingBean.value}" /> 

そしてここでは、バッキングBeanのJavaの一部です:

/** 
* getValue is a method which checks if a checkbox is selected or not, using the checkbox ID 
*/ 
public boolean getValue() { 
    //TODO: get the checkbox id 
    String checkboxID = ?? 

    if (getCheckedIDs().contains(checkboxID)) { 
    return true; 
    } 

    return false; 
} 

ページがチェックボックスをロードしている場合、チェックボックスが選択されている場合は、この方法でチェックします。ですから、質問は、代わりに何を書くべきかです。メソッドを呼び出したチェックボックスのIDを取得しますか? JSF 1.1しか使用できないことが非常に重要なので、このバージョンでは動作しない多くのソリューションがあります。

もう1つの非常に重要なことは、チェックボックスの値をサブミット後にチェックしたり、チェックを外した直後に保存したりする必要があるため、ここではhttps://stackoverflow.com/a/48006066/9158590のようなバッキングBeanでセッター/ゲッターを使用できないということです。私はチェックした直後にバッキングBeanの格納を解決しました。ページをロードするときにtrueまたはfalseを返す必要があります。
これはページナビゲーションを使用しているためです。たとえば、1ページ目のボックスをチェックして別のページに移動してから戻ると、ボックスはもう選択されません(バッキングBeanのみ)。

+0

にあなたは.addId(文字列ID)メソッドを実装することができ、あなたのあなたの.xhtmlで呼び出すことができます。あなたのVollectionはセットでなければなりません。 – sofarsoghood

答えて

0
FacesContext context = FacesContext.getCurrentInstance(); 
    UIComponent comp = context.getViewRoot().findComponent("Parent Element 
    id of HtmlSelectBooleanCheckbox "); 
    for(UIComponent c : comp.getChildren()) 
    if(c instanceof HtmlSelectBooleanCheckbox) 
    { 
    // do something 
    } 

あなたの質問に来る: 変数「#{backingBean.value}」の値を、次にチェックボックスが選択されます本当です

関連する問題