Я использую JSF Mojarra 2.3.8 с Tomcat 8 (с дополнительными библиотеками, необходимыми для CDI и JPA).У меня есть компонент ViewScoped:
@Named @ViewScoped
public class MyBean implements Serializable {
...
У меня есть страница, которая использует этот компонент.
Я открываю страницу в 2 вкладках браузера, изменяю и размещаю страницу на вкладке 1. Затем перехожуот страницы на вкладке 1 (действие возвращает другую страницу).
Затем на вкладке 2 я пытаюсь изменить и сохранить ту же запись.Там нет ошибки, но я вижу из журналов, что MyBean воссоздан и потерял исходные данные.
Чтобы сохранить данные, я использую:
<h:commandButton type="submit" value="Save" action="#{myBean.saveData}" />
Я думалчто компоненты ViewScoped могут использоваться независимо на нескольких вкладках.Если это правда, почему одна страница должна влиять на один и тот же компонент, связанный с другой страницей?
Кажется, что у меня есть та же проблема, описанная здесь: Несколько вкладок или окон браузера с одним и тем же классом компонента ViewScoped но, увы, у него нет ответа.
Хотя это может иметь ту же самую основную причину, что и javax.faces.view.ViewScoped bean и проблема с несколькими вкладками Я не думаю, что это дубликат, потому чтоЯ не использую WildFly, поэтому ответ на этот вопрос будет отличаться от моего (т. Е. WildFly был исправлен).