2012-02-03 39 views
0

刪除最後一個元素,我有一個支持bean的ArrayList和他在JSF頁面的渲染與c:forEach。當II通過索引,JSF,不管是什麼樣的索引中刪除的ArrayList元素,始終刪除最後一個元素。爲什麼發生這種事在JSFJSF總是從ArrayList中

刪除按鈕:

<a4j:commandButton immediate="true" action="#{bean.removeEntry}" ... 

所以我用直接的屬性。我認爲問題是因爲即時跳過在JSF生命週期中應用請求階段。有可能嗎?

如果是的話,怎麼比運行在這種情況下應用請求階段?

回答

0

多一點的代碼會有所幫助,但命令按鈕立即基本上是用於從當前頁面的ActionListener或行動將執行申請請求階段導航遠,典型情況下取消按鈕。這意味着你不會在那裏獲得更新的價值。 如果你的邏輯依賴於其他一些uiinput做出即時和您可以在valuechangelistener掛鉤的東西。

但我懷疑你正在努力實現可以更好的方式做的事情,您使用的Facelets(.xhtml頁)看看這個link @ SO

1

?如果是這樣,你可能會遇到一些關於JSTL標籤的常見誤解,如<c:foreach>。下面是它的好文章:

http://www.ninthavenue.com.au/blog/c:foreach-vs-ui:repeat-in-facelets

基本上,只有當視圖初步建成<c:foreach>進行處理;它不會成爲組件樹的一部分,並且可能會產生您在備份集合發生更改時無法預料的某些行爲。您可以改用<ui:repeat>代替。

0

我具有類似的問題。我正在使用'tr:iterator'遍歷ArrayList的'Customer'>'(); 'ui:repeat'解決了我的問題。 謝謝。