2008-11-28 19 views

Odpowiedz

3

Wartość ma na celu wysłanie obiektu SelectItem, a nie łańcucha takiego jak itemValue. Element itemValue jest wartością pozycji, która jest przekazywana do serwera jako parametr żądania, ale wartość jest wyrażeniem wiążącym wartość, które wskazuje instancję SelectItem.

Jeśli spojrzeć na to JSF:

<h:selectOneRadio value=""> 
    <f:selectItem itemValue="TestValue" itemLabel="TestLabel" /> 
</h:selectOneRadio> 

który zamienia się w tym HTML:

<table> 
    <tr> 
    <td> 
     <input type="radio" name="j_id_id9" id="j_id_id9:0" value="TestValue" /> 
     <label for="j_id_id9:0"> TestLabel</label> 
    </td> 
    </tr> 
</table> 

Więc wartość = valueBinding wskazując SelectItem w zarządzanym fasoli i ItemValue = wartość, która jest wysyłany. Jeśli zdecydujesz się dodać wartość = "# {TestBean.mySelectItem}", to nie zmieni on w żaden sposób wyjściowego HTML, ale implementacja JSF będzie wiedziała, że ​​w tym celu należy użyć właściwości getter dla pola mySelectItem.

Edytuj: Aby wyjaśnić odpowiedź, nieco więcej. Właściwość value SelectItem wiąże SelectItem z polem SelectItem w zarządzanym komponencie bean za pośrednictwem właściwości getter i setter. Jeśli ustawisz wartość takiego:

<h:selectOneRadio value=""> 
    <f:selectItem itemValue="TestValue" itemLabel="TestLabel" value="#{TestBean.mySelect}"/> 
</h:selectOneRadio> 

będzie wywołać metodę getMySelectItem() w TestBean. Jak widać, nie ma to nic wspólnego z itemValue, ponieważ itemValue jest odpowiedzialny za ustawienie wartości tego, co wchodzi w żądanie, gdy użytkownik przesyła formularz. ItemValue zostaną zapisane w godz: wartość selectOneRadio, które miejmy nadzieję, że nie wiąże się z polem String tak:

<h:selectOneRadio value="#{TestBean.selectedRadioValue}"> 
<f:selectItem itemValue="1" itemLabel="1. radio one" /> 
<f:selectItem itemValue="2" itemLabel="2. radio two" /> 
</h:selectOneRadio> 

Teraz, jeśli użytkownik sprawdza radio, które do niego wygląda tak: "1. radiu jeden "Wartość" 1 "zostanie zapisana w zmiennej TestBean o nazwie selectedRadioValue

+1

Myślę, że masz tu lepszą (oryginalną) odpowiedź, ale przeczytałem to pierwsze zdanie 4 razy i wciąż mam problem ze zrozumieniem. Wyjaśniać? – jmanning2k

+0

Zgadzam się z Jonem (na "lepszej" części odpowiedzi). +1 – VonC

+0

Ive dodał więcej informacji teraz =) Mam nadzieję, że to wyjaśni rzeczy –

0

z tego artykułu IBM Adding row selection to a JSF datatable using radio buttons:

id atrybut jest dla wartości składowej Radio Button Group. Będzie on związany polu Wartość

attributeid

Atrybut selectedRowId jest dla wartości poz przycisku radiowego, i będą zobowiązane do pola wartości poz

Item Value

+1

Te obrazy są chronione prawem autorskim i nie powinny być używane bez pozwolenia. – jmanning2k

Powiązane problemy