2015-04-03 55 views
0

我在JSF-2.1_29。据我所知,管理bean的methodw invokation的顺序对应于它们如何放置在标记中。在我的具体情况,我有:如何指定JSF中的评估顺序?

<h:outputText value="Rows count:"/> 
<h:outputText value="#{bonusBean.rowsCount}"/> 

<rich:dataTable id="bonusesTable" 
        var="bonus" 
        value="#{bonusBean.list}" 
        render="ds" 
        rowClasses="tr0, tr1"> 

    <!-- Columns, etc... --> 
</rich:dataTable> 

ManagedBean本身:

public class BonusBean{ 

private Integer rowsCount = 0; 

//GET, SET 

public List<BonusActionDTO> getList(){ 
    List<BonusActionDTO> lst = new ArrayList<BonusActionDTO>(); 

    //Getting the list from a persistance storage 

    rowsCount = lst.size(); 
    return lst; 
} 

在这种情况下getRowsCount()被调用第一返回0,所以Rows count: 0会在页面第一次加载到打印,尽管表格可能包含一些行。在调用getRowsCount()方法后,正在调用getList(),所以实际Rows count将在刷新页面后才打印。我怎样才能重新排序方法invokation的顺序?是否有可能在JSF

回答

1

我不知道你是否可以改变getter调用的顺序。但除此之外,get方法的结果对另一个get方法的调用的依赖性是一个糟糕的设计。两个getter应该返回相同的结果,而不考虑它们被调用的顺序。

+0

确实,我同意你的看法...... – user3663882 2015-04-03 08:28:37