【问题标题】:Calling a method multiple times when using h:dataTable in JSF在 JSF 中使用 h:dataTable 时多次调用方法
【发布时间】:2011-07-07 10:19:24
【问题描述】:

你们能帮我解释一下我在facelet页面中使用h:dataTable时多次调用该方法的原因吗?

 <h:dataTable id="listTable" styleClass="pageView_listForm"
 value="#{ClassName.dataFactory(topic)}" border="2" rules="rows" 
var="item" width="100%" cellpadding="1" cellspacing="0" rowClasses="panelRowOdd,panelRowEven" >
        //Body
        </h:dataTable>

豆类

@ManagedBean (name="ClassName")
@SessionScoped
public class ClassName{
   ...
     public DataModel <Person> dataFactory(String topic){
       DataModel items = null;  
       ..........
       // This block code gets the list of Person
       ..........
       return items;
    }

}

当它多次调用方法 dataFactory 时,我正在启动该页面。我不知道这里到底发生了什么?这是来自 JSF 还是我的实现的错误。你能帮帮我吗?

谢谢。

【问题讨论】:

标签: jsf


【解决方案1】:

当发生在 Datatable 上时,我们应该注意这样的方法不应该包含太多的业务逻辑,或者是昂贵的数据库交互。

在这里我找到了一些有用的讨论......

Why JSF calls getters multiple times

Why is BackingBean method called multiple times when requesting facelet?

This

here

Calling a method multiple times when using h:dataTable in JSF

【讨论】:

  • 我想我可以通过解决这个问题找到解决方案。谢谢
猜你喜欢
  • 2017-07-07
  • 2013-04-21
  • 1970-01-01
  • 2014-11-15
  • 2012-08-15
相关资源
最近更新 更多