что не является областью видимости и когда ее использовать?

может ли кто-нибудь объяснить, какова ни одна область и цель этого?

Предположим, что если у меня есть компонент в

request scope as r1 session scope as s1 application scope a1 

и скажем, что я не добавляю ни один вид области видимости n1 в каждую из вышеописанных областей, тогда я обнаруживаю, что n1 получает экземпляр для каждого родительского компонента, когда его экземпляр bean [r1 / s1 / a1] создается.

ни один компонент области видимости в a1 не доступен на протяжении всего a1, поскольку a1 является областью приложения. none scope bean в s1 доступен только до тех пор, пока s1 не будет уничтожен, а когда s1 будет создан снова, n1 будет инстанцироваться и стать доступным для него.

Правильно ли это?

и какова цель его использования? только для того, чтобы избежать создания такого компонента?

большое спасибо

На @NoneScoped EL, ссылающемся на bean-компонент, будет создан компонент с none или @NoneScoped . Он не хранится JSF нигде. В случае необходимости вызывающий абонент должен сам хранить оцениваемую ссылку.

Например, в представлении

 

#{noneScopedBean.someProperty}

#{noneScopedBean.someProperty}

#{noneScopedBean.someProperty}

на объекте, не являющемся участником, будет сконфигурирован компонент 3 (три) раза во время запроса. Каждый доступ к bean-компоненту дает совершенно отдельный компонент, который был сфабрикован сразу после доступа к собственности.

Однако, например, для компонента, включенного в сеанс,

 @ManagedProperty("#{noneScopedBean}") private NoneScopedBean noneScopedBean; 

заставит его жить до тех пор, пока экземпляр экземпляра, обработанный сеансом. Вы должны только убедиться, что вы получите доступ к нему в представлении #{sessionScopedBean.noneScopedBean.someProperty} .

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

Я использую @nonescoped, когда моя «логика представления» не обязательно должна находиться в какой-либо области, но на нее ссылается другой ManagedBean.

Я работаю с Liferay, так как хочу сделать свою архитектуру и дизайн независимыми от liferay, я создаю свои интерфейсы служб и Dto, но когда вам нужны данные о сохранении, Liferay нужно, чтобы companyId и companyGroupId были отклонены с уровня представления ( в этом случае JSF).

Чтобы сохранить независимость, я сделал «шаблон адаптера», создав ManageBean ServiceLayer с @noneScope с независимым от Liferay интерфейсом. Таким образом, я могу получить companyId и companyGroupId, необходимые Liferay Apis.

Преимущество использования @noneScope заключается в том, что вы можете использовать его как @ManagedProperty в любом компоненте любой области.

@NoneScoped будет полезен в следующем сценарии.

Предположим, что мы должны ввести один и тот же компонент в двух разных фасонных областях, мы можем отметить этот bean как @NoneScoped. Скажем, beanOne beanOne с @NoneScoped можно легко вводить в любой компонент с любой областью, например @Request или @Session.

Без использования @NoneScoped для BeanOne нам, возможно, придется дублировать компонент с различными областями и соответственно вводить их.

  • Используете ли вы фигурные скобки для дополнительной проверки?
  • Использование json_encode для объектов в PHP (независимо от области действия)
  • Видимость локальной переменной Java в анонимных внутренних classах - почему требуется ключевое слово «final»?
  • Как объявить глобальную переменную в VBA?
  • Как оценить переменную scriptlet в EL?
  • общие глобальные переменные в C
  • Несколько директив , запрашивающих новую / выделенную область
  • Примеры опасностей глобальных переменных в R и Stata
  • array.length равно нулю, но массив имеет в нем элементы
  • Ограничение диапазона переменных
  • Какова область применения метода по умолчанию в Java?
  • Давайте будем гением компьютера.