Dim*_*ele 15 jsf-2 prerenderview jsf-2.2
什么时候应该使用preRenderView事件来初始化页面的数据而不是使用viewAction?它们在使用上是否相同,是否具有相同的效果?
preRenderView事件
<f:metadata>
<f:event type="preRenderView" listener="#{myBean.initialize}"/>
</f:metadata>
Run Code Online (Sandbox Code Playgroud)
要么
的viewAction
<f:metadata>
<f:viewAction action="#{myBean.initialize}"/>
</f:metadata>
Run Code Online (Sandbox Code Playgroud)
kol*_*sus 22
在实践中,它们可用于实现相同的效果,但viewAction(JSF2.2的新增功能)具有以下增强功能:
onPostback:viewAction附带此属性,允许您指定是否要在回发到同一视图时执行操作(即,在页面刷新或按钮提交等).它默认为false,所以如果你不需要,你甚至不必指定它.为了达到同样的效果preRenderView,你需要
<f:metadata>
<f:event type="preRenderView" rendered="#{facesContext.postBack}" listener="#{myBean.initialize}"/>
</f:metadata>
Run Code Online (Sandbox Code Playgroud)phase:此属性允许您指定在特定JSF阶段执行操作.它默认为INVOKE_APPLICATION,但所有其他JSF阶段ID在此处都有效.
if:此属性允许您提供计算结果为布尔值的值表达式.视图操作仅对此表达式的结果执行.
immediate:此属性现在授予viewAction在APPLY_REQUEST_VALUES阶段期间执行的能力(与默认INVOKE_APPLICATION阶段相比),使其行为像常规UIComponent
总的来说,这viewAction是一种执行视图命令的更简洁的设计方法.
| 归档时间: |
|
| 查看次数: |
11131 次 |
| 最近记录: |