2015-04-03 53 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