Как исправить: My Web App заставляет всех пользователей «взаимодействовать» с одним и тем же списком, вместо того, чтобы давать каждому пользователю свой собственный список - PullRequest
0 голосов
/ 22 мая 2019

После нескольких часов отчаянного поиска, я прошу любого, кто мог бы помочь. Я создал веб-приложение, в котором пользователь может добавлять гостей в список, но когда я запускал приложение в Интернете, каждый раз, когда гость добавлялся в список одним пользователем, список обновлял весь веб-сайт, и каждый мог видеть, независимо от того, на каком устройстве вы его проверили, вместо простого обновления списка только на пользовательском устройстве / сеансе. Кажется, что это заставляет всех в один общий список. Я построил приложение с помощью весенней загрузки и добавил объекты в HttpSession, а затем переключил их на простые ModelAttributes, чтобы, возможно, исправить ошибку, но ничего. Я надеюсь, что это имеет смысл, и кто-то еще имел дело с этим раньше.

Класс My Guest Service был разработан со всеми статическими методами и имеет статический экземпляр ArrayList, содержащий все добавленные гости. Я думал, что проектирование класса как статического привело к тому, что все пользователи были вынуждены попасть в один и тот же список, поэтому я изменил его, чтобы он не был статичным, и автоматически связывал класс с необходимостью, но это не помогло, поэтому я спрашиваю за помощь, отчаянно.

Я мог опубликовать код, но я понятия не имею, что может быть причиной этой ошибки, и не хотел просто копировать и вставлять все мое веб-приложение. Ссылка на GitHub: https://github.com/JavaJonathan/PortfolioWebsite

Моя цель - чтобы каждый пользователь мог работать со своим списком гостей, а не с одним и тем же списком гостей.

1 Ответ

0 голосов
/ 24 мая 2019

@ NicoE Ваш ответ привел меня к ответу, я попытался аннотировать класс Service с областью действия сеанса, но затем я начал получать исключения NullPointerException, поэтому через несколько часов я нашел еще одно сообщение о переполнении стека, объясняющее: «Так где должен @Scope идти?

Аннотирование @Controller с помощью @Scope ("session") не поможет, так как создаст контроллеры области действия сессий, но сервис, который они внедрили, по-прежнему одноэлементный.

Аннотируемый только компонент службы также не будет работать, поскольку @Controller является одноэлементным и его зависимости автоматически подключаются при запуске приложения.

Аннотирование как @Service, так и @Controller может сработать, но выглядит немного неуклюже. "Из всех просмотренных мною учебных пособий ни один из них не объяснял возможности бинов. Спасибо, что избавили меня от многих более трудных часов программирования .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...