Весенняя форма тега для вложенных бобов - PullRequest
1 голос
/ 29 октября 2011

У меня есть 2 класса, как показано ниже,

public class CheckInBean implements Serializable{

private String user;
private Date checkInDate;
private List<ItemBean> items;


..followed by getters and setters

public class ItemBean implements Serializable{

private static final long serialVersionUID = 1L;

private int itemId;
private String barcode;
private String description;
private int minimalCount;
private int initialCount;
private int actualCount;
private String location;

    ... followed by getters and setters

У меня есть страница jsp с использованием тегов пружинной формы.

Мне нужно ввести дату и несколько значений ItemBean (более одного на одной странице) для списка. Я не уверен, как это сделать, я просто прочитал где-то в stackoverflow, чтобы использовать Propertyeditor, но я не уверен, что это соответствует моим требованиям Пожалуйста, предложите.

Я использую Spring 3.

Thanx

1 Ответ

1 голос
/ 29 октября 2011

Хорошо, что случается так, что если вы отправляете свою форму с данными для одного или нескольких ItemBeans, Spring MVC попытается отобразить эти значения в сущности EXISTING ItemBean.Если ваш список ItemBeans внутри экземпляра CheckInBean равен нулю / пуст, Spring MVC выдаст ошибку.Чтобы предотвратить это, вы можете сделать несколько вещей:

  • Создайте собственную реализацию java.util.List (например, вы можете переопределить ArrayList) и измените метод get(int position) так, чтобы прион вызывается для определенной позиции, и обычно эта позиция возвращает ноль, сначала вы создаете новый экземпляр, помещаете его в эту позицию в (супер) списке, а затем возвращаете его.Это своего рода хак, но хорошо, если у вас может быть большой интервал между экземплярами ItemBean (например, вам может понадобиться 3 или 400), поскольку он будет создавать только необходимые экземпляры и не чрезмерно загрязнять память.

  • Вы можете предварительно заполнить список ItemBeans внутри CheckInBean предварительно определенным числом пустых элементов, которое является максимальным количеством экземпляров ItemBean, которые пользователь может добавить к этому компоненту с помощью вашей формы.Это меньше взлома, чем вышеупомянутый вариант, но он имеет тенденцию быть бесполезным с точки зрения памяти.Было бы хорошо, если у вас есть небольшое максимальное количество ItemBeans, которое можно добавить в CheckInBean.

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