初始位置:
我们将SEAM与RICHFACES一起使用。
我们通过一个动作(名为actionBean.doBefore)获得了以下页面配置,该动作应在页面加载时执行一次:
<page>
<action execute="#{actionBean.doBefore}"/>
<navigation from-action="#{actionBean.doAfter}">
<redirect view-id="/view/component/test.xhtml" />
</navigation>
</page>
问题
当我们按照ajax验证字段时,甚至会执行操作:
<h:inputText value="#{formBean.price}" id="price" required="true">
<a4j:support event="onblur" reRender="price" ajaxSingle="true" bypassUpdates="true" />
</h:inputText>
或使用意见箱(即使您键入时):
<rich:suggestionbox id="suggestionBoxId" for="city" suggestionAction="#{suggest.autocomplete}" var="result" minChars="3" nothingLabel="No capitals found" ajaxSingle="true" bypassUpdates="true" selfRendered="true" >
<h:column>
<h:outputText value="#{result.cityName}" />
</h:column>
</rich:suggestionbox>
提前致谢 拉菲
答案 0 :(得分:1)
据我所知你不能。始终会调用该操作。
为什么不将Backing Bean的范围限定为 PAGE 或 CONVERSATION ,而不是使用页面操作,然后从使用 {注释的方法执行操作{1}} 强>?这将为您提供与页面操作相同的效果,但只会在第一次实例化Bean时调用。
答案 1 :(得分:1)
非常感谢。将是另一种方法。 action标签上的以下属性似乎解决了我的问题。希望没有副作用:
<action execute="#{actionBean.doBefore}" on-postback="false"/>