【问题标题】:Force component render order in jsf在jsf中强制组件渲染顺序
【发布时间】:2011-12-16 09:18:49
【问题描述】:

我有一个 (IBM)jsf 1.2 应用程序,我尝试使用 faces 托管 bean 在页面顶部显示错误, 我的问题是,如果在一个组件 getter 中创建了一个错误,并且我将它写入面托管 bean(错误 bean),errorbean 没有正确呈现,原因是 jsf 在另一个之前调用了错误 bean 的 getter正在写入错误 bean 的组件。

那么我怎样才能强制 jsf 重新渲染整个页面或者指定先渲染哪个主管。

谢谢

【问题讨论】:

    标签: jsf jsf-1.2


    【解决方案1】:

    您不应该在 getter 方法中做任何业务工作,而应该在 bean 的(后)构造函数中。

    例如

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

    这还带来了无需多次调用业务作业的优势。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-12-09
      • 1970-01-01
      • 2013-06-23
      • 1970-01-01
      • 2021-03-05
      • 1970-01-01
      • 1970-01-01
      • 2014-04-20
      相关资源
      最近更新 更多