0
如何動態更改h:dataTable的值?我有以下代碼(只是一個片段):動態更改JSF中的h:dataTable值
<h:dataTable value="#{DataProvider.mapValues}" var="o" border="1">
<h:column>
<h:outputText value="#{o.key}"></h:outputText>
</h:column>
<h:column>
<h:outputText value="#{o.value}"></h:outputText>
</h:column>
</h:dataTable>
<h:selectOneMenu>
<f:selectItem itemLabel="Choose Language.."></f:selectItem>
<f:selectItem itemLabel="DE"></f:selectItem>
<f:selectItem itemLabel="CZ"></f:selectItem>
<f:selectItem itemLabel="EN"></f:selectItem>
<f:selectItem itemLabel="FR"></f:selectItem>
<f:selectItem itemLabel="ES"></f:selectItem>
<f:selectItem itemLabel="PT"></f:selectItem>
</h:selectOneMenu>
所以,基本上,當我選擇從selectOneMenu用於語言,數據表應該使用不同的值(如「#{DataProvider.mapValues(EN)」) 。要清楚:每次我從Combobox中選擇一個值時,dataTable應該用另一個值重新加載。
我想這可以在JavaScript中工作,但我不知道它究竟是如何完成的。 任何幫助,將不勝感激。謝謝!
編輯:我必須使用JSF1.2,所以我不能使用任何內置的AJAX功能。
我不會推薦添加任何業務getter中的邏輯,請參閱[爲什麼JSF多次調用getters](http://stackoverflow.com/q/2090033/1065197)。相反,在你的''中添加一個'listener',它將更新地圖的值(或者結構OP用於填充'')。 –
@LuiggiMendoza - 你說得對,如果'getMapForLanguage'需要一些時間才能完成,我還會推薦這種方法。 – dratewka
感謝您的方法!不幸的是,我忘記提及我必須使用JSF1.2,它沒有內置的AJAX支持。任何其他想法? – hurley