2017-12-31 157 views
0

그래서, 여기에 JSF 구성 요소입니다는 ID 시간의 속성을 얻는 방법 : 백업 빈에서 selectBooleanCheckbox을

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

는 그리고 여기에 백업 콩 자바의 일부입니다

/** 
* 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 만 사용할 수 있다는 점에서 매우 중요합니다. 따라서이 버전에서는 작동하지 않는 많은 솔루션이 있습니다.

매우 중요한 또 하나의 이유는, 여기처럼 백킹 빈에 setter/getter를 사용할 수 없다는 것입니다 : 제출 후 확인란을 선택하거나 선택 취소 한 직후에 확인란의 값을 저장해야하기 때문에 https://stackoverflow.com/a/48006066/9158590을 사용해야합니다. 확인한 후에 바로 백킹 빈에 저장을 완료했습니다. 페이지를로드 할 때 true 또는 false를 다시 보내면됩니다.
페이지 탐색을 사용하고 예를 들어 페이지 1의 상자를 체크하고 다른 페이지로 이동 한 다음 다시 돌아 오면 상자가 더 이상 선택되지 않습니다 (백킹 빈에서만).

+0

에 당신이 .addId (문자열 ID) 메소드를 구현할 수 귀하 bean을 만들고 .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}"의 값을 다음 확인란이 선택됩니다 사실이다