我目前正在接縫項目上工作並遇到問題。seam操作方法執行兩次?
我剛創建了一個新頁面(一個名爲MyPage.xhtml的xhtml)。 在XHTML我的代碼,你可以找到一個命令按鈕和AA:中繼器來顯示我的數據:
<!-- input fields that are filters for my table shown below -->
<h:commandButton value="View details" action="/MyPage.xhtml"/>
<rich:panel rendered=#{myAction.showDetails}>
<a:repeat value="#{myAction.findRecords()}" var="record">
<!-- Some of my code to display a table, nothing fancy -->
</a:repeat>
</rich:panel>
在我的行動
我有這樣的:
@DataModel
private List<MyEntity> records = new ArrayList<MyEntity>();
public List<MyEntity> findRecords() {
//Do some query
Query query = entityManager.createNamedQuery("myEntityQuery");
records = query.getResultList();
return records;
}
這是頁面是如何工作的:
- 我的輸入框和命令按鈕被顯示,而不是rich:panel,因爲我的showDetails布爾值爲false。
- 當showDetails布爾值設置爲true時,將顯示該面板並且迭代調用我的操作方法findRecords()。到現在爲止還挺好!
- 但是當我再次點擊我的動作按鈕時,動作方法findRecords()會執行兩次。這裏是我的問題...
爲什麼要執行兩次?我怎樣才能限制一次?現在它花費我們很多表現。!
氪,
德克