Как прочитать значение переключателя

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

person Sam    schedule 18.02.2010    source источник
comment
Это не будет работать гладко. Уточните, почему вы не хотите использовать h:selectOneRadio (или любой другой компонент JSF). Насколько этого было недостаточно для ваших требований? Если вы подробнее расскажете о недостатке и функциональных требованиях, возможно, мы сможем предложить правильное решение/обходной путь.   -  person BalusC    schedule 18.02.2010


Ответы (2)


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

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

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

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

Что вам нужно сделать, так это использовать @WebRemote в Seam, а затем, используя javascript, вы можете при отправке формы установить значение через Ajax в вашем компоненте UserHome.

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

person Shervin Asgari    schedule 22.10.2010

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

person Filip Ekberg    schedule 18.02.2010
comment
Вы проверили код и прочитали вопрос? Как бы вы сделали это без h:selectOneRadio? - person BalusC; 18.02.2010
comment
Я просто указал, что ему нужно использовать список для хранения выбранных значений. - person Filip Ekberg; 18.02.2010
comment
Это просто неправильно. OP хочет одно значение, поэтому вы должны указать значение, в данном случае роль либо Role, либо String, а не List, как вы подразумеваете здесь. Если бы был флажок, то List был бы правильным - person Shervin Asgari; 22.10.2010