Что именно делает pageflowScope в ADF Faces?

Лица ADF предоставляют новую область (называемую pageflow) в дополнение к обычным областям сеанса, запроса, просмотра для managed beans. Что делает этот диапазон? Каковы его плюсы и минусы? Когда объекты, помещенные внутрь pageflowScope, удаляются из мусора?


person Geek    schedule 13.01.2013    source источник


Ответы (4)


Компоненты pageFlowScope ограничены концепцией «потоков задач» контроллера ADF, то есть неограниченными потоками задач (UTF) или ограниченными потоками задач (BTF). В ADF поток задач — это набор страниц или фрагментов страниц, объединенных в поток, или, другими словами, определенный набор действий, включая маршрутизаторы, вызовы методов и вызовы страниц/фрагментов страниц.

Жизненный цикл/область pageFlowScope соответствует потоку задач. Они появляются, когда к ним впервые обращаются с помощью кода или EL (не обязательно в начале потока задач) в потоке задач, и выпадают из области действия, когда поток задач завершается (или пользователь выходит из системы, или время сеанса истекает). . Поскольку потоки задач могут вызывать потоки задач в виде стека, в любой момент времени может быть задействовано несколько bean-компонентов pageFlowScope.

У pageFlowScope не столько преимуществ/недостатков, сколько того, когда вы должны их использовать или нет. Компоненты pageFlowScope несут состояние для потока задач и позволяют отделить состояние потока задач от компонентов сеанса с большей областью действия и компонентов applicationScope, а также не воссоздавать его так часто, как запросы с меньшей областью действия, компоненты backingBean и представления с областью действия. Например, входящие и исходящие параметры потока задач идеально хранить в pageFlowScope. В качестве контрпримера значения, которыми нужно манипулировать на текущей странице, лучше разместить в области запроса/бэкингбина/представления.

Еще одним преимуществом bean-компонентов pageFlowScope является то, что они поддерживают мультибраузерные вкладки. Если в одном и том же сеансе два экземпляра приложения открыты на разных вкладках браузера, ADF создаст два отдельных bean-компонента pageFlowScope для каждой вкладки, в отличие от sessionScope, который создаст только один. Это позволяет потокам задач иметь независимое состояние на каждой вкладке.

Наконец, отвечая на ваш последний вопрос, объекты внутри bean-компонента pageFlowScope становятся доступными для сборки мусора только тогда, когда сам bean-компонент pageFlowScope выходит из области действия, то есть когда поток задач завершается, пользователь выходит из системы или сеанс истекает. Конечно, применяются обычные предостережения, если программист сохраняет косвенный дескриптор bean-компонента pageFlowScope, bean-компонент не будет кандидатом на сборку мусора, пока это не произойдет.

person Chris Muir    schedule 15.01.2013

В ADF используется концепция потока задач, в которой вы можете объединить несколько связанных страниц с правилами навигации. Область действия потока страниц охватывает выполнение такого потока задач. Это может занять больше времени, чем запрос, и может охватывать несколько представлений, поэтому эта область длиннее, чем область запроса и представления, но меньше, чем область сеанса. Область уничтожается, когда вы уходите со страниц, составляющих поток задач. В качестве очень простого варианта использования подумайте о мастере, в котором вам нужно заполнить пару страниц данных, прежде чем отправить окончательный результат для обработки.

person Bogdan    schedule 14.01.2013

В дополнение к приведенным выше сообщениям, основное использование pageFlowScope заключается в том, что поток задач, ограниченный ADF, имеет разные действия. пример просмотра, вызов метода, возврат потока задач и т. д.

PageFlowScope используется для обмена данными между действиями в потоке задач. Также входной параметр и выходные параметры потока задач хранятся в области pageflow.

person Peddi    schedule 09.03.2013

Просто :

pageFlowScope: эта область будет доступна, пока пользователь переходит с одной страницы на другую. Если пользователь открывает новое окно браузера и начинает навигацию, эта серия окон будет иметь свою собственную область pageFlowScope.

  1. Каждому экземпляру потока задач ADF предоставляется собственная область потока страниц.

  2. Область потока страниц не уничтожается при выходе из потока задач, если только вы не используете действие возврата потока задач и не вызывается финализатор.

  3. Вы можете получить доступ к ранее покинутой области потока страниц только с помощью действия возврата потока задач.

Как программно получить доступ к объектам pageFlowScope

    AdfFacesContext context= AdfFacesContext.getCurrentInstance();
    Map pageFlowScope = context.getPageFlowScope();
    pageFlowScope.put("Name","myName");
person A_BOSS    schedule 16.10.2014