2014-01-23 5 views
4

Я новичок в Struts, и мне нужна помощь в использовании <s:radio within a displaytag table.Использование радиостанции Struts2 в displaytag

В одной из столбцов моей таблицы displaytag есть группа радиостанций «Да» и «Нет». Это значение (Да или Нет) будет предварительно выбрано из БД, но пользователь может изменить эти значения и отправить форму. Для этого я использую следующий код:

<display:table name="mmiq" pagesize="-1" requestURI="" uid="mmiq"> 
... 
... 
<display:column title="Response"> 
    <s:radio theme="simple" name="mmiq_%{#attr.mmiq_rowNum - 1}"  
      list="#attr.mmiq.response" value="#attr.mmiq.selectedResponse" /> 
</display:column> 

</display:table> 

Список основы для этой таблицы отображения является mmiq<RowData>. Бин RowData имеет ArrayList<String> response с двумя значениями «Да» и «Нет», заполненными в конструкторе. Метод getSelectedResponse в компоненте RowData возвращает предварительно выбранное значение для этого компонента из базы данных.

Таблица отображается в порядке и значения предварительно выбираются как возвращенные из БД.

Однако, когда данные должны быть отправлены обратно в класс действия, я не уверен, как фиксировать измененные значения для радиокамера. В настоящее время при отправке я получаю сообщение об ошибке (для каждой строки в таблице отображения): No object in the CompoundRoot has a publicly accessible property named 'mmiq_9' (no setter could be found).

Может ли кто-нибудь помочь мне понять, что я делаю неправильно здесь и как это исправить? Любая помощь будет высоко оценен!

ответ

1

Попробуйте с

<s:radio theme = "simple" 
      name = "mySelectedValue[%{#attr.mmiq_rowNum - 1}]" 
      list = "#attr.mmiq.response" 
     value = "#attr.mmiq.selectedResponse" /> 

и в действии

private List<String> mySelectedValue; 

с сеттер.

+1

спасибо! Это решило проблему. – user3226180

+0

Рад, что помогло, не стесняйтесь отвечать на ответ, если вам это нравится –

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