2010-02-18 68 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的更多信息。