这是我的情景:
我正在使用JSF。
现在我有以下内容:带有a属性的模态。此属性从DB加载内容并将列表返回到JSF页面。
主要问题是由于页面每5秒刷新一次,因此每5秒调用一次该属性(即对DB的请求)。
总结:我希望每次用户点击一个按钮时,在每5秒刷新(ajaxified)的页面内都有一个加载列表的模态。
做这些事情的正确方法是什么?指向优秀教程的指针是很好的答案,我不需要代码,而是了解最佳实践。
感谢。
答案 0 :(得分:0)
每当用户单击按钮时,我都会从数据库中获取列表,并将其放入当前请求(范围=会话,视图,会话或其他)中的bean的属性中,然后绑定该属性与EL表达。
要在单击按钮时获取列表,请让按钮触发重新呈现面板内容的ajax请求,并在完成ajax请求后使面板可见。你还没有说过你正在使用的ajax或组件库;与Richfaces一样,它就像:
<a4j:commandButton
action="#{mybean.fetchListFromDatabase}"
rerender="panelcontent"
oncomplete="Richfaces.showModalPanel('thepanel')"
/>
答案 1 :(得分:0)
模式面板已在RichFaces和PrimeFaces库中实现
这两个实现都包含ajax和jQuery来管理基本行为。您可以使用其中一个来实现模式面板和从DB恢复数据的列表(使用ViewScope托管bean)。
如果您不能或可能不想将任何这些库添加到项目中,您可以使用它们的代码并将其用作实现的启动(两个库都是开源的)。