2011-10-27 20 views
1

私はページの上部に面管理されたBeanを使用してエラーを表示しようとする(IBM)jsf 1.2アプリケーションがあります。 コンポーネントのいずれかでエラーが発生した場合getterと私はそれをfaceマネージドBean(エラーBean)に書きますが、エラーbeanは正しく表示されず、理由はjsfがエラーBeanに書き込んでいる他のコンポーネントの前にエラーBeanのゲッターを呼び出しているためです。jsfでのコンポーネントのレンダリング順序を強制的に

どのようにしてjsfにページ全体を再度レンダリングさせるか、またはどのような能力のあるモミを指定するかを指定できます。あなたはgetterメソッドではなく、むしろ豆の(ポスト)コンストラクタですべてのビジネス仕事をするべきではありません

おかげ

答えて

2

など。

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; 
    } 

} 

これにより、ビジネスジョブが不必要に複数回呼び出されないという利点もあります。

関連する問題