首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

应用长对话的"manual" flush-mode ,多操作一次提交

2012-12-19 
使用长对话的manual flush-mode ,多操作一次提交一次长对话访问中可以包括多个页面,每个页面只处理部分

使用长对话的"manual" flush-mode ,多操作一次提交

一次长对话访问中可以包括多个页面,每个页面只处理部分数据,但不保存到数据库,最后一起提交到数据库。

长对话可以很好地记录下各部操作的状态,但是默认情况下 flush-mode 是自动更新的,每次页面请求结束后就会更新到数据库里,如果要统一提交就必须更改flush-mode 为manual,让每次操作都不更新到数据库,最后在一起em.flush();

?

在页面配置(refBspgen222.page.xml)中指定manual方式

<page>

?<begin-conversation join="true" flush-mode="manual"/>
</page>

?

在最终要提交数据库的按钮上增加flush actionListener,如下所示

<a4j:commandLink actionListener="#{refBspgenparAction.save}" reRender="addPanel"
???? value="submit2" styleClass="button">
?????<f:actionListener binding="#{entitySupport.flush()}"/>
????</a4j:commandLink>?

中间不需要更新到数据库的页面上的按钮不要加<f:actionListener binding="#{entitySupport.flush()}"/>

备注:要保证entitySupport.flush()在refBspgenparAction.save之后再执行,要使用actionListener属性,而不是action属性

热点排行