【问题标题】:JSF preload list for datatable in page [duplicate]页面中数据表的 JSF 预加载列表 [重复]
【发布时间】:2010-09-16 15:00:06
【问题描述】:

我正在使用 EJB 和 JSF。我制作了一个带有“获取列表”按钮的 jsp 简单页面。单击它时,会调用一个托管 bean 方法来设置列表,然后在 jsp 中显示该列表并带有 dataTable 标记。

问题是,如何在页面加载时预加载此列表/数据表而无需单击按钮?

这是通过jsp上的按钮动作调用的方法:

public String retrieveList() {
    items = facade.getAllItem();
    return "";
}

这是jsp的一部分:

<h:dataTable value="#{mybean.items}" var="sup"
    binding="#{mybean.dataTable}"
    rowClasses="oddRow, evenRow"
    styleClass="tableStyle"
    headerClass="tableHeader"
    columnClasses="column1, column2, column1, column1, column1, column1">

【问题讨论】:

    标签: jsf ejb-3.0


    【解决方案1】:

    您可以使用 @postConstruct 添加方法 init

    @PostConstruct
    public void init(){
      items = facade.getAllItem();
    }
    

    这将仅在创建 bean 时返回项目,

    【讨论】:

      【解决方案2】:

      @PostConstruct注解方法,去掉返回值。

      @PostConstruct
      public void retrieveList() {
          items = facade.getAllItem();
      }
      

      这样,该方法将在构造 bean 并注入所有 @EJB 依赖项之后立即执行。在 JSF 页面中,您只需按照通常的方式绑定到 #{bean.items}

      【讨论】:

      • 不客气。不要忘记将最有帮助的答案标记为已接受。另请参阅stackoverflow.com/faq
      猜你喜欢
      • 1970-01-01
      • 2014-08-27
      • 2013-03-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-01
      相关资源
      最近更新 更多