Повторное использование нескольких экземпляров CDI @Named bean одного и того же класса на странице JSF

Я хотел бы использовать несколько экземпляров одного и того же именованного компонента CDI на странице JSF2. (Представьте, что у меня есть вспомогательный компонент для доступа к категории ContentManager, но я хочу показать несколько категорий на одной и той же странице JSF) Интересно, как я могу «переопределить» имя по умолчанию аннотации @Named, чтобы я мог иметь эти 3 или 4 экземпляра на моей странице. (¿Помните старый тег JSP "useBean" для использования bean-компонента на странице... таким образом вы можете использовать несколько экземпляров одного и того же класса) Я искал beans.xml, но не нашел его. Могу ли я использовать старую запись Faces-context.xml "managed bean"? Не знаю, будет ли это применяться к компоненту CDI @Named или может использоваться только для старых компонентов, не управляемых CDI.

спасибо за любую информацию, Игнасио


person icordoba    schedule 29.12.2010    source источник


Ответы (2)


Вы можете просто сделать свой bean-компонент @Dependent (или удалить существующую аннотацию области), и пока вы не используете bean-компонент дважды в одном и том же выражении EL, вы получите новые базовые экземпляры.

person covener    schedule 04.01.2011

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

Поэтому я думаю, что вам вообще не следует управлять своими бобами. Просто поместите их как атрибуты запроса и получите к ним доступ через EL.

person Bozho    schedule 29.12.2010
comment
Я включил несколько функций в управляемый компонент CDI для репликации различных экземпляров. Я хочу использовать CDI и аннотацию @named, но надеюсь, что старый способ включения нескольких bean-компонентов, используемых на страницах JSP, может быть воспроизведен аналогичным образом. спасибо за Ваш ответ. - person icordoba; 30.12.2010