У меня есть форма с dateTimeField и ListView.
ListView выглядит так:
final ListView<String> countryView = new ListView<String>("country", model.<List<String>>bind("country")) {
@Override
protected void populateItem(final ListItem<String> item) {
final String country = item.getModelObject();
item.add(new ValidationDisplayableLabel("country", country, new String[] { modelPath }));
item.add(new AjaxLink("deleteLink") {
@Override
public void onClick(AjaxRequestTarget target) {
model.getObject().getCountry().remove(country);
if (issPeriod) {
addButton.setVisible(true);
countryTextField.setVisible(true);
findButton.setVisible(true);
}
if (target != null)
target.addComponent(rowPanel);
}
});
}
};
countryTextField = new ValidationDisplayableTextField("countryCodeInput", model.bind("oneCountry"), "job.country.value");
**countryView.setReuseItems(true);**
rowPanel.add(countryView);
rowPanel.add(countryTextField);
addButton.setOutputMarkupPlaceholderTag(true);
rowPanel.add(addButton);
И кнопка addButton выглядит так:
AjaxSubmitLink addButton = new AjaxSubmitLink(LinkNames.addCountry.toString()) {
@Override
public void onSubmit(AjaxRequestTarget target, Form form) {
if (model.getObject().getOneCountry() != null)
addCountry();
if (target != null)
target.addComponent(rowPanel);
target.addComponent(form.getPage().get("feedbackPanel"));
}
@Override
protected void onError(AjaxRequestTarget target, Form<?> form)
{
onSubmit(target, form);
}
};
Дело в том, что когда мне не удается установить dateTimeField (например, установить часы на 100), ввести код страны в countryTextField и нажать на кнопку addButton, на панели обратной связи отобразится сообщение о проверке, этот часовой диапазон неверен, но не добавить страну. Это потому, что моя модель не обновлена. Может быть, есть способ обновить его вручную? Таким образом, сообщение проверки будет отображаться, но список стран по-прежнему может быть обновлен?
Отправка всей формы осуществляется с помощью другой кнопки, поэтому логично добавить страну, даже если в dateTimeField есть ошибка проверки.
Спасибо!
P.S. Я прочитал много постов о подобной проблеме, но большинство из них были решены с помощью .setReuseItems (true), но в моем случае это не работает.
P.P.S Apache калитка 1.4.17