【发布时间】:2014-05-28 05:22:15
【问题描述】:
我正在使用<f:viewParam> 传递参数,如下所示。
<ui:define name="metaData">
<f:metadata>
<f:viewParam name="id" value="#{bean.entity}" converter="#{converter}"/>
</f:metadata>
</ui:define>
是否可以仅在页面加载/刷新时处理此<f:viewParam>?
只是因为<f:viewParam> 指定的转换器成本很高,所以将通过查询字符串传递的值转换为 JPA 实体。因此,它涉及昂贵的数据库事务,即使使用诸如<p:commandButton>、<p:commandLink> 之类的组件进行 ajaxical 回发也是不必要的。
因此,例如,当单击<p:commandLink> (ajaxical) 时,不应执行昂贵的业务服务(在转换器中)。这个可以吗?
当rendered 属性与facesContext.postback 像rendered="#{not facesContext.postback}" 一样被评估但属性rendered 是not documented 时,这以某种方式起作用(尽管如此奇怪)。因此,它是不可靠的。
【问题讨论】:
-
感谢@Tiny 提出这个问题,它准确地描述了我遇到的情况,如此处所述p:dataTable how prevent f:viewParam being invoked on 1st rowEdit then “tick save” using JSF at XHTML level (not in Java in backing bean)
标签: jsf jsf-2.2 viewparams