我有幾種形式像這樣在同一頁上:幾個選擇的菜單,A4J支持,只有最後一個工作
<h:form>
<h:selectOneMenu value="#{collectionBean.selectedCollection}">
<f:selectItems value="#{collectionBean.collectionItems}" />
<a4j:support event="onchange" />
</h:selectOneMenu>
<a4j:commandButton value="Add" action="#{collectionBean.addToCollection(_resource)}" >
</a4j:commandButton>
</h:form>
這裏是我的豆:
@Name("collectionBean")
@Scope(ScopeType.SESSION)
public class CollectionBean {
private String selectedCollection;
public String getSelectedCollection() {
return selectedCollection;
}
public void setSelectedCollection(String collectionName) {
selectedCollection = collectionName;
}
public List<SelectItem> getCollectionItems() {
...
}
public void addToCollection(Resource res) {
...
}
}
表單關聯到資源_resource
,其目標是讓用戶將資源添加到他選擇的集合中。
的問題是,只在頁面上最後一個表格的工作:改變在其他形式的選擇時,setSelectedCollection
方法不會被調用。
你有什麼可能是錯誤的想法?
你是說你在單個視圖已經多個組件,每個綁定到一個相同的bean的屬性?這有什麼意義?你不願意將它們綁定到一個單獨的bean屬性,以便你可以獲取單個值嗎? – BalusC 2013-03-13 11:20:01
它是一個資源表,對於這些資源中的每一個,用戶都可以選擇一個集合來添加資源。我沒有在這裏顯示代碼,但表單中還有一個「添加」按鈕。 – eskaev 2013-03-13 11:58:15
它看起來越來越像你的問題有哪些在這裏回答了同樣的原因:http://stackoverflow.com/questions/10972284/hselectonemenu-in-loop/10973440#10973440你多個組件綁定到一個bean財產,並以某種方式期待這個單一的財產可以一次神奇地持有多個值。 – BalusC 2013-03-13 12:00:26