#java #jsf #icefaces
#java #jsf #icefaces
Вопрос:
у меня есть приложение, созданное с помощью ice: faces .. я хочу обеспечить поддержку нескольких окон с одним и тем же сеансом, возможно ли это в ice: faces? в web.xml я поставил тег вот так
<context-param>
<param-name>com.icesoft.faces.concurrentDOMViews</param-name>
<param-value>true</param-value>
</context-param>
Я могу открыть несколько окон, но проблема в том, что я не могу вносить изменения из обоих окон одновременно.
Комментарии:
1. Какая проблема возникает, когда вы пытаетесь это сделать? При получении ошибки опубликуйте подробности журнала.
2. Если открыто несколько окон, и я обновляю страницу, то я выхожу из текущего.
3. Если я напишу что-то вроде <param-value>false</param-value>, то последнее обновление окна отразится на другом окне.
Ответ №1:
Из документации ICEfaces :
При включенном одновременном просмотре DOM каждое окно браузера четко идентифицируется номером просмотра, и обновления DOM будут корректно применены к соответствующему окну. Это вводит некоторые важные соображения для модели данных приложения. Управляемые компоненты в области сеанса теперь могут использоваться совместно несколькими представлениями одновременно. Это может быть желаемой областью для некоторых состояний, но обычно состояние, связанное с представлением, более уместно сохранять в области запроса.
Область запроса: Для типичного состояния, связанного с представлением, компоненты области запроса будут сохраняться при большинстве пользовательских взаимодействий, но не при изменениях представления. Это рекомендуемая область для приложений ICEfaces, которые используют несколько окон.
Область действия сеанса: для состояния, которое должно быть общим для всех представлений.
Когда вы устанавливаете параметр как true
поддерживает несколько представлений, но должны использовать компоненты с областью запроса. Возможно, принудительный выход из текущего сеанса, если открыто другое окно.
Если настроены одновременные представления DOM и пользователь создает несколько окон, ICEfaces использует одно блокирующее соединение для доставки асинхронных обновлений для всех представлений в сеансе.
И когда установлено значение false
поддержка единого представления, изменения в окне отражаются в другом.
Комментарии:
1. я также пробовал с областью действия сеанса и DOM true, но все равно это дает тот же результат. И изменить всю область запроса на session не является возможным решением 🙂 .
2. @четан, я думаю, вы неправильно поняли и протестировали сценарий с областью сеанса вместо компонентов с областью запроса. И для практической реализации эти вещи необходимо учитывать во время инициализации проекта.
3. Если я не ошибаюсь, вы хотите сказать, что измените область запроса с session на loginBean, поскольку я использую loginBean в качестве backingBean, используемого во время входа в систему. Это правильная интерпретация?
4. и извините за это недоразумение
5. Это нормально, но это должно корректно работать с компонентами в области запроса, возможно, в вашей конфигурации есть какая-то проблема. Вместо того чтобы внедрять непосредственно в свой проект, попробуйте создать примерный проект, чтобы четко разобраться во всем.