我的webflow中有四个列表,我从我的服务层加载。它们看起来像这样:
<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正确地向列表中添加了一个条目。
Webflow"addEntry"片段:
<transition on="addPostal">
<evaluate expression="uiPostalAddresses.add(personService.getEmptyPostalAddress())" />
</transition>
这一切都发生在相同的视图状态中,整个应用程序在Liferay上的Portlet中运行。
我不知道是什么问题。你能帮帮我吗?
我用:
- jsf: 1.2
- Primefaces: 1.1
- Webflow: 2.3
- Portlet: 2.0 -> JSR286
- Liferay:6.0.6
我终于找到解决办法了。
我在一个指向uiPostalAddresses的指针上工作,如果我清除party上的列表和addAll to party,列表是空的。
那是我的错;-)