ajax - JSF f :event preRenderView is triggered by f:ajax calls and partial renders, 还有什么?

标签 ajax jsf-2

所以我们有一个 f:event:

   <f:metadata>
    <f:event type="preRenderView" listener="#{dashboardBacking.loadProjectListFromDB}"/>
   </f:metadata>

在初始页面加载(渲染)时根据需要触发。

然而,这个 preRenderView 事件也由 ajax 部分页面渲染触发,它重新渲染一个带有 id projectListing 的 h:panelgroup,如下所示。
<h:commandButton action="#{mrBean.addProject}" value="Create Project"
                                     title="Start a new project">
   <f:ajax render="projectListing" />
</h:commandButton>

我只想在初始页面呈现时调用dashboardBacking.loadProjectListFromDB,而不是在有ajax 部分呈现时调用。我可以使用更合适的事件或方法吗?

最佳答案

另一种选择是把你的 preRenderView @PostConstruct 中的功能ViewScoped的方法托管 bean 。这个逻辑将在 bean 初始化时执行,并且您为所有 ajax 请求维护 bean 的相同实例,直到您更改 View 。

关于ajax - JSF f :event preRenderView is triggered by f:ajax calls and partial renders, 还有什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2830834/

相关文章:

javascript - 使用 Ajax 时 jQuery Ui 不导入 "auto"类

ajax - 等待 2 个 AJAX 请求完成(d3.js)并优化临时等待?

javascript - 使用 Jasmine 测试从 jQuery AJAX 回调调用的函数

jsf-2 - JSF2.0 资源库子文件夹文件检索

java - primefaces 展示案例 "Grid CSS - responsive layout"的 css 文件在哪里

java - 将数据从 UI 传递到数据库时出现问题 - JSF、JPA 等

javascript - jQuery 数据表单元格不更新

javascript - 以不同的布局加载更多帖子

jsf-2 - JSF f :event execution order

jsf - 复合组件和ID