#java #wicket
Вопрос:
У меня есть ссылка, которая открывает всплывающее окно (не модальное окно, а небольшое окно браузера).
protected void onInitialize() {
super.onInitialize();
Link<Void> myLink = new Link<>("myLink") {
@Override
public void onClick() {
setResponsePage(new MyPage((IModel<MyDto>) getDefaultModel()));
}
};
myLink.setPopupSettings(new PopupSettings());
myLink.getPopupSettings().setHeight(100).setHeight(100);
Button button = new Button("button");
myLink.add(button);
add(myLink);
}
Когда я нажимаю на него, все работает нормально (как и ожидалось). Но после закрытия всплывающего окна
остальная часть страницы становится непригодной для использования, т. е.
Если после закрытия всплывающего окна я нажму кнопку или введу что-то в поле ajaxTextField
Я получаю всевозможные ошибки, такие как NoSuchMethod
(в моем классе модели я использую инициализацию конструктора, поэтому никаких установщиков). NullPointerExeption… И т. Д.
Однако, если после закрытия модального окна я обновлю страницу, то все снова будет работать так, как ожидалось.
Что я делаю не так? Как сделать так, чтобы после закрытия модального окна все кнопки, текстовые поля, ссылки и т.д. будет ли работать так, как ожидалось, без ручного обновления страницы, с которой было показано всплывающее окно?
Ответ №1:
Наконец-то нашел его. Эти ошибки происходят там, где они происходят, потому что некоторые из моих моделей являются переходными, т. е.
private transient final LoadableDetachableModel<Long> myModel;
удаление переходного процесса исправило проблему