2017-12-28 58 views
0

그래서, 여기에 JSF 구성 요소입니다
JSF 1.1 - 아이디의 시간의 속성을 얻는 방법 : 백업 빈에서 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 만 사용할 수 있다는 것이 매우 중요하므로이 버전에서는 작동하지 않는 많은 솔루션이 있습니다.

+0

'값 = "backingBean.value"'입니다 잘못 ...해야한다'값 = "# {backingBean.value}" – Kukeltje

답변

0

EDIT : @Kukeltje가 올바르게 언급했듯이 주요 문제는 값 표현이 잘못되었다는 것입니다. 일단 변경하면 아래 내용이 적용됩니다.

확인란의 값 ("설정"또는 "설정 해제")을 "계산"할 필요가 없습니다. JSF는 그 순간에 (즉, 페이지를 제출할 때) 확인란의 사용 여부에 따라 backingbean.setValue(x) (xtrue 또는 false)을 호출합니다.

value="#{backingBean.value}"이라고 말했기 때문에 자동으로 발생합니다.

따라서 setValue()에 단순히 인수를 저장하면 getValue에 저장된 인수가 반환됩니다. 나머지는 JSF에 의해 수행된다.

확인란을 기본적으로 사용하려면 저장된 값을 true로 설정합니다. 예를 들어

:

private boolean storedValue = true; // or false if you want it to be off by default 

public boolean getValue() { 
    return storedValue; 
} 

public void setValue(boolean value) { 
    this.storedValue = value; 
} 
+1

'값 = "backingBean.value"' 잘못된 것입니다 ... 'value = "# {backingBean.value}"'' – Kukeltje