Как опубликовать массив пользовательских объектов с отсутствующими записями в действии Struts2

Табличные входы Это предлагает использовать XWorkList вместо ArrayList, когда размер массива неизвестен и между ними есть пробелы.

Но XWorkList не является универсальным и не имеет пустого конструктора, согласно документации

Мой вопрос как использовать XWorkList или есть какой-нибудь способ представить список бинов с отсутствующими в списке элементами?

Образец HTML:

<input name="lst[0].name"/>
<input name="lst[3].name"/>
<input name="lst[4].name"/>

2 ответа

Это расширяется ArrayList и имеет конструктор, который принимает Class, Таким образом вы бы изменили:

List<String> foo = new ArrayList<String>();
foo.add("bar");
foo.add("");
foo.add("");
foo.add("foobar");
foo.add("barfoo");

в:

List<String> foo = new XWorkList(String.class);
foo.add("bar");
foo.add(3, "foobar");
foo.add(4, "barfoo");

List Контракт представляет собой заказную коллекцию. У него не может быть пропавших без вести. Около XWorkList это просто другая реализация списка, способная создавать новые элементы для указанного индекса, заполняя пробел для обязательных элементов. Что сказано для add(int, Object)

Вставляет указанный элемент в указанную позицию в этом списке. Смещает элемент, находящийся в данный момент в этой позиции (если есть), и любые последующие элементы вправо (добавляет один к их индексам). Этот метод гарантированно работает, так как он создаст пустые бины, чтобы заполнить разрыв между текущим размером списка и запрошенным индексом, чтобы позволить элементу быть установленным.

Другим подходом для создания новых bean-компонентов в списке является использование преобразования типов. Или используя аннотации, как в этом ответе.

Другие вопросы по тегам