2011-10-27 5 views
1

페이스 관리 빈을 사용하여 페이지 상단에 오류를 표시하려고하는 (IBM) jsf 1.2 응용 프로그램이 있습니다. 구성 요소 중 하나에서 오류가 발생하는 경우 문제가 발생합니다. getter와 내가 faces managed bean (에러 빈)에 쓰면, 에러 빈이 제대로 렌더링되지 않고 jsf가 에러 빈에 기록하고있는 다른 컴포넌트보다 먼저 에러 빈의 getter를 호출합니다.jsf의 구성 요소 렌더링 순서를 강제로

그래서 jsf가 전체 페이지를 다시 렌더링하거나 전나무를 렌더링 할 능력이있는 사람을 지정하도록 할 수 있습니까?

감사

답변

2

당신은 getter 메소드의 모든 비즈니스 일을하지만, 안 오히려 빈의 (게시물) 생성자한다.

예.

public class Bean { 

    private List<Entity> entities; 

    @EJB 
    private EntityService entityService; 

    @PostConstruct 
    public void init() { 
     try { 
      entities = entityService.list(); 
     } catch (Exception e) { 
      String message = String format("Failed to retrieve entities: %s", e.getMessage()); 
      FacesMessage facesMessage = new FacesMessage(FacesMessage.SEVERITY_ERROR, message, null); 
      FacesContext.getCurrentInstance().addMessage(null, facesMessage); 
      e.printStackTrace(); 
     } 
    } 

    public List<Entity> getEntities() { 
     return entities; 
    } 

} 

이렇게하면 비즈니스 작업이 불필요하게 여러 번 호출되지 않는다는 장점이 있습니다.

관련 문제