Struts2 Как создать таблицу, повторяя список таким образом, чтобы в каждой строке был переключатель? - PullRequest
2 голосов
/ 31 марта 2011

Я пытаюсь создать таблицу для отображения некоторых данных с помощью итератора по списку из класса действий.У каждой строки есть свойства каждого объекта в списке.

<table class="TableA" cellpadding="5px" border="1">
<tr class="even">
    <th></th>
    <th>Col1</th>
    <th>Col2</th>
</tr>
<s:iterator value="objectList" status="obj">
    <tr
        class="<s:if test="#obj.odd == true ">odd</s:if><s:else>even</s:else>">
        <td></td>
        <td><s:property value="objId" /></td>
        <td><s:property value="objValue" /></td>
    </tr>
</s:iterator>

Мне нужна кнопка-переключатель в первой ячейке каждой строки, чтобы можно было выбрать строку для редактирования или удаления.Я знаю, что это можно сделать с помощью <input type="radio" ...>.Но мне нужно использовать радио-метку struts2.Но проблема использования этого тега состоит в том, что он генерирует строку для каждого радиотега (см. здесь ).

Возможно ли это?Если да, то как?

Ответы [ 3 ]

3 голосов
/ 31 марта 2011

Я думаю, что следующий синтаксис будет лучше для вас, так как вы хотите выбрать каждую строку с переключателем

<s:radio theme="simple" name="object_radio" list="#{objId:objId}"/>

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

1 голос
/ 26 апреля 2011

Ану, твой ответ мне очень помог.Также эта ссылка мне очень помогла: http://struts.apache.org/2.0.14/docs/how-do-i-render-a-single-radio-button.html

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

<s:iterator value="myHashMap">
<tr>
  <td><s:radio name="selectedRadioValueFirstColumn"  list="#{key:''}"/></td>
  <td><s:radio  name="selectedRadioValueSecondColumn" list="#{key:''}"/></td>
<%--....... (my other columns) .... --%>
<tr>

Поэтому я устанавливаю значение параметра в качестве ключа хеш-карты, и выбранное значение будетхранится в свойствах строки «selectedRadioValueFirstColumn» и «selectedRadioValueSecondColumn».

0 голосов
/ 31 марта 2011

Kaillash: если я полностью понимаю ваши требования, все, что вы хотите сказать, это то, что при отображении страницы с помощью кнопки Struts2 Struts2 автоматически создает строку для каждой кнопки-переключателя.

Если это так, чем функциональность Struts2 по умолчанию, Struts2 работает с темой шаблона, а тема по умолчанию (xhtml) автоматически генерирует некоторую HTML-разметку для каждого тега Struts2.

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

<s:radio key="personBean.gender" list="genders" theme="simple" />

или вы также можете установить тему на основе страницы. создайте файл struts2.properties в корне и поместите следующую запись

struts.ui.theme=simple

Я надеюсь, что это поможет вам

...