Бин ViewScoped на конфликтах между несколькими вкладками браузера - PullRequest
0 голосов
/ 16 февраля 2019

Я использую 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 был исправлен).

1 Ответ

0 голосов
/ 25 февраля 2019

В случае, если у кого-то еще есть такая же проблема, я думаю, что это самый близкий ответ к ответу прямо сейчас:

Это ошибка с Мохаррой, и она будет исправлена ​​в 2.3.10 в соответствии с этим постом:https://github.com/eclipse-ee4j/mojarra/issues/4509#issuecomment-453188481

До выхода Mojarra 2.3.10 использование версии, поставляемой с WildFly 16, может работать, поскольку команда Wildfly пропатчила эту версию (но я этого не пробовал).Если вы используете Wildfly или Payara, посмотрите на обновление до последних версий (16 Alpha 1 для WF), так как они оба были исправлены (но не в GA на этот ответ).

ОБНОВЛЕНИЕ:Версию 2.3.10 можно найти в новом доме: http://central.maven.org/maven2/org/glassfish/jakarta.faces/2.3.10/

...