2014-10-01 4 views
0

Я пытаюсь создать компонент, используя область представления, но функция @PostConstruct вызывается при каждом доступе компонента. Вот очень простой пример (.xhtml):viewcoped bean вызывается при каждом обращении фасоли назад

<?xml version="1.0" encoding="UTF-8"?> 
    <!DOCTYPE html 
     PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
    <html xmlns="http://www.w3.org/1999/xhtml" 
      xmlns:h="http://java.sun.com/jsf/html">  
     <h:outputText value="#{documentFormBeanTest.test()}" /> 
     <h:outputText value="#{documentFormBeanTest.test()}" /> 
</html> 

и вот мой боб:

package lu.etat.pch.docroom.ejb.controllers; 

import javax.annotation.PostConstruct; 
import javax.faces.bean.ViewScoped; 
import javax.inject.Named; 
import java.io.Serializable; 

/** 
* User: André Faber 
* Date: 22/04/13 
*/ 

@Named 
@ViewScoped 
public class DocumentFormBeanTest implements Serializable { 
    @PostConstruct 
    public void init() { 
     System.out.println("*************************************************************"); 
    } 

    public void test() { 
     System.out.println("Test"); 
    } 
} 

теперь я могу видеть в моем журнале, что функция PostConstruct называется так часто, как я вызовите функцию «тест» (в этом случае дважды).

Не должен ли быть создан только один раз (когда я вхожу на страницу), или я что-то упускаю?

Заранее спасибо

+0

Я уверен, что реализация '@ ViewScoped' для CDI прослушивается. Попробуйте использовать версию JSF (в комплекте с '@ ManagedBean' вместо CDI) и посмотрите разницу – kolossus

+0

Большое вам спасибо! С @ManagedBean компонент работает правильно. – user2423989

ответ

-1

Каждый боб имеет уникальный идентификатор (как и любой другой элемент). Используйте debug mod и посмотрите, совпадает ли ваш Id при разных кликах. В любом случае, я бы порекомендовал добавить h: форму вокруг кнопок.

+0

Я проверил каждый раз, когда создается новый экземпляр. У меня нет кнопок, есть только выходные тексты. – user2423989