Struts2: радиобуттон, итерации и список проблем - PullRequest
0 голосов
/ 09 ноября 2009

У меня сложная проблема, и я надеюсь, что это возможно объяснить ясно ...

У меня есть 2 списка. На моем jsp у меня есть вложенная итерация с этими 2 списками, внутри которой есть тег.

Это код:

<s:iterator value="listSurveyToRender" var="s" status="counterS">
                 <s:iterator value="listSurveyValuesToRender" var="sv" status="counterSv" >
                          <s:if  test="%{#s.idsurvey==#sv.survey.idsurvey}">
                             <td><s:radio list="sv"  listValue="valoreTesto" name="provaRadio1" />
                          </s:if>
                 </s:iterator>

Это результат этого jsp:

Question 1: (first iterator)
   resp 1:          (second iterator)
   resp 2:
   resp 3:
Question 2: (first iterator)
   resp 1:          (second iterator)     
   resp 2:

Проблема в том, что когда я выбираю радио, потому что список уникален для всех, выбор исключает другие ...

Мне нужно ограничить это исключение на втором итераторе.

Спасибо!

Ответы [ 2 ]

1 голос
/ 09 ноября 2009

В сущности: чтобы разделить группы переключателей, вам нужно присвоить им различное имя .

Я не делаю Struts, но теоретически заменяю

name="provaRadio1"

от

name="provaRadio1${counterS.index}"

должен сделать.

Чтение / интерпретация сгенерированного источника HTML (открытие страницы в браузере, щелчок правой кнопкой мыши, просмотр источника) также должны дать много нового понимания.

0 голосов
/ 09 ноября 2009

Может быть возможно сделать что-то вроде этого:

  <s:set name="x" value="0"/>
<s:iterator value="listSurveyToRender" id="s" status="counterS">
             <s:set name="x" value="%{x + 1}"/>
             <s:iterator value="listSurveyValuesToRender" id="sv" status="counterSv" >
                      <s:if  test="%{#s.idsurvey==#sv.survey.idsurvey}">
                         <td><s:radio list="sv"  listValue="valoreTesto" name="provaRadio%{x}" />
                      </s:if>
             </s:iterator>
 </s:iterator>

У меня не было возможности проверить это, но в основном каждая внешняя итерация будет увеличивать x, а x будет использоваться для создания уникального идентификатора для переключателя каждой группы.

В вашем действии вы должны будете объявить provaRadio1, provaRadio2 и т. Д., Чтобы получить отправленное значение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...