2010-02-18 5 views
0

Я хотел бы прочитать выбранную информацию о роли в представлении формы (роль выбрана для пользователя из списка ролей). Как читать выбранное значение радио кнопки в моем EntityHome интерфейс (Примечание: я не хочу использовать час: опция 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

ответ

0

Вам нужно указать значение/список к ArrayList из SelectItem там будут сохранены элементы, которые вы выбрали.

+0

Вы проверили код и прочитали вопрос? Как бы вы сделали это так, без 'h: selectOneRadio'? – BalusC

+0

Я просто указал, что ему нужно использовать Список для хранения выбранных значений. –

+0

Это просто неправильно. OP хочет одно значение, поэтому вы должны указывать значение, в данном случае, роль как «Роль», так и «Строка», а не «Список», как вы подразумеваете здесь. Если бы был флажок, тогда «Список» был бы правильным –

1

Два комментария.

Прежде всего. Используйте JSF Components, где вы можете.

Во-вторых. Избегайте использования тегов JSTL. Удалите c:forEach, если вам не нужно его использовать. Замените его ui:repeat, h:dataTable и т.д.

Теперь, чтобы ответить на ваш вопрос для обхода проблемы, если вы не можете напрямую использовать h:selectOneRadio

То, что вы должны сделать, это использовать @WebRemote в пластах, а затем с помощью JavaScript У может на форме submit, установить значение через Ajax в вашем UserHome компоненте.

Ознакомьтесь с главой 5. Remoting в документации на шов для получения дополнительной информации о том, как использовать Remoting.

Смежные вопросы