поддержка нескольких окон icefaces для одного сеанса

#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. Это нормально, но это должно корректно работать с компонентами в области запроса, возможно, в вашей конфигурации есть какая-то проблема. Вместо того чтобы внедрять непосредственно в свой проект, попробуйте создать примерный проект, чтобы четко разобраться во всем.