我需要的是某种机制,用于在定义的时间间隔内从托管bean执行方法...所以,基本上我需要来自apache trinidad的poll标签:
<tr:poll interval="5000" pollListener="#{myManagedBean.doPoll}" id="pollComponent"/>
但是:我们的项目中没有Trinidad实施,也无法将其包含在当前项目阶段。我们所拥有的只是MyFaces 2.0.6。实施JSF 2。
我已经成功编写了一个复合组件,它在定义的时间间隔内更新特定字段,如本文所述:
http://jsfatwork.irian.at/book_de/ajax.html#!idx:/ajax.html:6.4.2
此示例除了更新包含当前时间的输出文本外无其他任何操作。
但我真正需要做的不是简单地更新字段,而是调用包含某些业务逻辑的方法。
有没有办法用MyFaces和一些'手工制作'复合材料组件实现这一目标?
是否可以通过某种方式从上面的jsf-at-work教程调整ajaxPoll组件,它能够执行特定的托管bean方法?
提前感谢所有提示!
答案 0 :(得分:1)
最简单(也是最丑陋的)你可以提交隐藏的表格
<h:form id="poll" style="display:none">
<h:commandLink id="link">
<f:ajax event="click" listener="#{bean.poll}" />
</h:commandLink>
</h:form>
用这个JS
document.getElementById('poll:link').onclick();