Допустим, у меня есть страница регистрации и страница подтверждения регистрации.Я ввожу данные пользователя на страницу регистрации, перехожу на страницу подтверждения регистрации, где я могу вернуться на страницу регистрации, если есть какие-либо ошибки.
Я собираюсь использовать параметры просмотра, чтобы сделать данные регистрации доступнымисо страницы регистрации на страницу подтверждения, и наоборот.
Предположим, что существует 20 элементов данных для перемещения со страницы на страницу, это много параметров просмотра и множество setPropertyActionListeners, особенно как вседанные в итоге будут красиво упакованы в объекте User.
Итак, я хочу ввести данные на странице регистра в свойства записи пользователя и отправить ссылку на нее в подтверждение регистрации.стр.Что дало мне идею, так это просмотр конвертора BalusC WeakHashMap.Это конвертер JSF, который имеет статическую карту слабого хэша и генерирует uuid в качестве значения для записи карты и ссылку на объект в качестве ключа.Поэтому, указав это как конвертер для f: viewParam, вы отправляете uuid в строке запроса.
Это отлично работает.У меня проблема в том, что на странице регистрации я должен получить экземпляр класса User с новым.Затем я могу сделать:
<h:inputText value="#{bean.user.firstname}"/>
(и т. Д.) И передать пользовательский экземпляр в качестве параметра представления.Он отлично работает от регистрации до страницы подтверждения.Проблема заключается в том, что когда я выполняю обратное действие, отправляя пользовательскую ссылку обратно на страницу регистрации со страницы подтверждения, я абсолютно не могу предотвратить повторное создание экземпляра пользовательского объекта на странице регистра, после установщикабыл вызван как результат параметра представления.
Таким образом, конвертер выполняет свою работу и извлекает объект User из хэш-карты, вызывает setUser () в компоненте поддержки, а затем я вижу конструктор для Userстрельба по классу.
Я пытался вызвать new User () из конструктора bean-компонента в @PostConstruct, в preRenderView (также проверяя, является ли ajax-запрос), но ни одно из попыток не мешает работе параметра viewот уничтожения, если новое вовлечено.Я уверен, что есть простое решение, но я просто не вижу его прямо сейчас.
Буду признателен за любые предложения о том, как решить эту проблему.