как получить доступ к полям массива формы с помощью struts2

StackOverflow https://stackoverflow.com/questions/1005503

  •  05-07-2019
  •  | 
  •  

Вопрос

В настоящее время я работаю над одной формой, которая содержит 2 кнопки.Нажав на кнопку 1, я получаю блок html-полей, как показано ниже.

`

<table width="100%">
    <tbody><tr>

      <td class="style4" width="12%" align="center">CODE<span class="style3"> </span></td>
      <td width="18%"><input name="c_code[]" value="" id="c_code__" class="box_border" style="width: 120px;" type="text"></td>
      <td class="style3" width="15%" align="right">Price</td>
      <td width="7%"><input name="c_price[]" value="" id="c_price__" class="box_border" style="width: 40px;" type="text"></td>
      <td class="style3" width="4%" align="right">Qty</td>
      <td width="7%"><input name="c_qty[]" value="" id="c_qty__" class="box_border" style="width: 40px;" type="text"></td>
      <td class="style3" width="9%" align="right">On Sale </td>

      <td width="3%"><input name="c_onsale[]" id="c_onsale__" value="" type="radio">    
<label for="c_onsale"></label>
</td>
      <td class="style3" width="10%" align="center">Exposition</td>
      <td width="15%"><input name="c_exposition[]" size="15" value="" id="c_exposition__" class="box_border" type="text"></td>
    </tr>
  </tbody></table>

`

Теперь каждый раз, когда пользователь нажимает на кнопку, весь приведенный выше блок будет включаться в html-форму с помощью вызова метода ajax.

  1. Теперь моя проблема в том, как я могу получить значения всех элементов в виде массива в классе struts2 action.Или как написать метод setter и getter для этих массивов.

Есть ли какой-нибудь лучший способ выполнить описанное выше другим способом, который облегчил бы мне работу?

  1. Как написать файл проверки struts2 для полей массива, подобных этому?

Кто-нибудь может мне помочь в этом вопросе.

Спасибо.

Это было полезно?

Решение

Хорошо, если вы можете переименовывать свои поля, используя индекс в массиве для каждой итерации, чтобы они назывались c_name[0], c_name[1] и т.д...Затем вы можете просто определить массив в своем классе action, и сопоставление будет выполнено без проблем.Что касается проверки, я бы предложил провести проверку вашего действия на стороне сервера.

С уважением,

Другие советы

Используйте List вместо массива на стороне сервера, и struts автоматически сопоставит с ним новые разделы (новый блок элемента в пользовательском интерфейсе).

Если вы определите его как массив, то он не сможет каждый раз инициализировать новый раздел, так как размер не может увеличиваться динамически

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top