Webflow には、サービス レイヤーからロードする 4 つのリストがあります。それらは次のようになります。
<evaluate expression="partyService.getPostalAddresses()" result="viewScope.uiPostalAddresses"
result-type="java.util.ArrayList" />
私の JSF/Primefaces UI には、次のようなものがあります。
<p:dataTable id="partyAddressTable" widgetVar="partyAddressTable"
var="address" value="#{viewScope.uiPostalAddresses}" style="width:100%;"
rows="#{msg.parties_address_table_rows}" styleClass="partyAddressTable"
paginator="#{msg.parties_address_table_paginator}"
paginatorPosition="#{msg.parties_address_table_paginatorPosition}"
paginatorTemplate="#{msg.parties_address_table_paginatorTemplate}"
lazy="#{msg.parties_address_table_lazy}" selectionMode="single"
selection="#{viewScope.selectedItem}"
scrollable="#{msg.parties_address_table_scrollable}">
[...]
</p:dataTable>
ページを開くと、webflow がリストをロードし、JSF/Primefaces が正しく表示します。そして、「addEntry」ボタンを押すと、リスト内のエントリがすべて消えます。Webflow が 1 つのエントリをリストに正しく追加していることを確認しました。
Webflow「addEntry」-スニペット:
<transition on="addPostal">
<evaluate expression="uiPostalAddresses.add(personService.getEmptyPostalAddress())" />
</transition>
すべてが同じビューステートで発生し、アプリケーション全体がLiferayのポートレットで実行されます。
何が問題なのかわかりません。手伝っていただけませんか?
私は使用しています:
- JSF: 1.2
- プライムフェイス: 1.1
- ウェブフロー: 2.3
- ポートレット: 2.0 --> JSR286
- ライフレイ: 6.0.6