2009-11-24 5 views
2

양식을 가지고 있으므로 확인란을 미리 선택해야합니다. jsf/seam으로 어떻게 가능합니까? 일반 html에서는 "checked"(또는 checked = "checked") 속성을 확인란에 추가하기 만하면됩니다. 하지만 f 옵션을 사용하면 selectItems ... 실마리가 없습니다 ... 객체 "SelectItem"은 이에 대한 설정자를 제공하지 않습니다 ...JSF/SEAM : 양식의 확인란을 사전 선택하는 방법

답변

6

대개 평소처럼 구성 요소의 value 속성 뒤에 속성을 미리 설정해야합니다 모든 UIInput 구성 요소. 빈의 생성자 또는 초기화 블록에서이를 수행 할 수 있습니다.

<h:selectManyCheckbox value="#{bean.selectedItems}"> 
    <f:selectItems value="#{bean.selectItems}" /> 
</h:selectManyCheckbox> 

콩 :

private List<String> selectedItems; // +getter +setter. 
private List<SelectItem> selectItems; // +getter. 

public Bean() { 
    // Preset the selected items. 
    this.selectedItems = new ArrayList<String>(); 
    this.selectedItems.add("valueToBePreselected1"); 
    this.selectedItems.add("valueToBePreselected2"); 
    // Those values should be exactly the same as one of the SelectItem values. 
    // I.e. the Object#equals() must return true for any of them. 
} 
+0

고마워요. 사실 나는 이것을 이미 시도했지만, 나는 ..... 체크 박스의 레이블을 추가했기 때문에 작동하지 않았다.). – Shizuma

+0

알아두면 좋을 것. (+1) –

1

당신이

<h:selectManyCheckbox value="#{selectManyCheckBoxBean.selectedItems}"> 
    <f:selectItem itemLabel="India" itemValue="India" /> 
    <f:selectItem itemLabel="China" itemValue="China" /> 
    <f:selectItem itemLabel="Germany" itemValue="Germany" /> 
    <f:selectItem itemLabel="USA" itemValue="USA" /> 
</h:selectManyCheckbox> 
(위상 수신기를 사용하여 예를 들어) 페이지를 rendereing 전에 "값"에서 사용하는 속성을 채 웁니다 여기

은 기본 예제
관련 문제