2010-02-18 124 views
0

我想閱讀表單提交中選定的角色信息(從角色列表中爲用戶選擇一個角色)。如何我在EntityHome接口(:我不想使用h:注意這裏selectOneRadio選項)讀取選定的單選按鈕值如何讀取單選按鈕的值

       <tr> 
            <s:div rendered="#{userHome.instance.type ne 'admin'}"> 
             <th width="150" class="rich-table-subheadercell center">#{_user.getName()}</th> 
            </s:div> 


            <c:forEach items="#{userHome.instance.roles}" var="_role"> 
             <td width="150" class="center" style="background: rgb(100, 100, 100) none repeat scroll 0% 0%;"> 
              #{_role.name} 
              <input type="radio" style="display : none" name="#{userHome.instance.id}" value="#{_role.id}"/> 
             </td> 
            </c:forEach> 
           </tr> 
+1

這不會無縫工作。請詳細說明**爲什麼**你不想使用'h:selectOneRadio'(或任何其他JSF組件)。你的要求如何不足?如果您詳細闡述不足*和功能要求,我們可能會提供正確的解決方案/解決方法。 – BalusC 2010-02-18 10:54:08

回答

0

您需要的值/表指向了SelectItem的ArrayList你選擇的項目將被存儲在哪裏。

+0

你檢查了代碼並閱讀了這個問題嗎?如果沒有'h:selectOneRadio',你會怎麼做? – BalusC 2010-02-18 10:57:14

+0

我剛纔指出他需要使用List來存儲選定的值。 – 2010-02-18 11:12:44

+0

這顯然是錯誤的。 OP想要一個值,因此您應該將該值指向此角色,或者是Role或String而不是List,正如您在此暗示的那樣。如果有複選框,那麼'List'應該是正確的 – 2010-10-22 07:55:51

1

兩條評論。

首先。儘可能使用JSF組件。其次,避免使用JSTL標籤。如果您不必使用它,請刪除c:forEach。與ui:repeat取代它,h:dataTable

現在回答你的問題的解決方法,如果你不能直接使用h:selectOneRadio

你將要做的就是在使用Seam @WebRemote,然後通過使用JavaScript你可以通過表單提交,在您的UserHome組件中通過Ajax設置值。

請參閱Seam文檔中的章節5. Remoting以獲取有關如何使用Remoting的更多信息。