Мое окружение : Java 7 / JSF 2.1 / PrimeFaces 6.1.
Моя цель : многократно создавать конкретную страницу моего приложения, по одной для каждой вкладки браузера, каждая с различным контекстом.
Моя проблема : каждый раз, когда я открываю вторую вкладку браузера, запрашивающую с того же URL, но с другим идентификатором объекта, предыдущий уничтожен, поэтому поддерживается только один экземпляр поддерживающего компонента.
Откуда я знаю, что : В моем компоненте поддержки есть один метод, помеченный @PosConstruct
, а другой - @PreDestroy
, поэтому я могу отслеживать жизненный цикл экземпляров.
Мой вспомогательный компонент помечается следующим образом:
@ViewController
public class MyBackingBeanMB extends AbstractBackingBeanMB {
private static final long serialVersionUID = 1L;
// many fields and methods
}
Аннотация @ViewController
предоставляется платформой приложения, которую я должен использовать , Такая аннотация объявляется как:
@Named
@Controller
@Stereotype
@ViewScoped // For me, this should do the trick, but...
@Target(value={TYPE})
@Retention(value=RUNTIME)
@Inherited
public @interface ViewController {
}
Обновление 1:
Аннотация @Controller
также предоставляется используемой платформой и объявляется как:
@InterceptorBinding
@Inherited
@Target({ TYPE, METHOD })
@Retention(RUNTIME)
public @interface Controller {
}
Есть идеи, что может быть не так?
TIA.