gpt4 book ai didi

jsf-2 - 什么时候使用 preRenderView 和 viewAction?

转载 作者:行者123 更新时间:2023-12-03 20:20:33 26 4
gpt4 key购买 nike

与使用 viewAction 相比,什么时候应该使用 preRenderView 事件来初始化页面的数据?它们在使用上是否相同并且它们具有相同的效果?

preRenderView 事件

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

或者

View 操作
<f:metadata>
<f:viewAction action="#{myBean.initialize}"/>
</f:metadata>

最佳答案

在实践中,它们可以用来达到相同的效果,但viewAction (JSF2.2 的新增功能)具有以下增强功能:

  • onPostback :viewAction带有此属性,允许您指定是否希望在回发到同一 View 时执行操作(即,页面刷新或按钮提交等)。默认为 false ,因此如果您不需要,您甚至不必指定它。用preRenderView达到同样的效果, 你需要
     <f:metadata>
    <f:event type="preRenderView" rendered="#{facesContext.postBack}" listener="#{myBean.initialize}"/>
    </f:metadata>
  • phase :此属性允许您指定在特定 JSF 阶段执行的操作。默认为 INVOKE_APPLICATION ,但所有其他 JSF 阶段 ID 在这里都有效。
  • if :此属性允许您提供一个计算结果为 bool 结果的值表达式。 view Action 只会在这个表达式的结果上执行。
  • immediate :此属性现在授予 viewAction 的能力在 APPLY_REQUEST_VALUES 期间执行阶段(相对于默认的 INVOKE_APPLICATION 阶段),让它表现得像一个常规的 UIComponent

  • 总的来说, viewAction是执行 View 命令的更简洁的设计方法。

    关于jsf-2 - 什么时候使用 preRenderView 和 viewAction?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24490152/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com