【发布时间】:2013-04-28 03:24:27
【问题描述】:
支持的 JSF 2.x 顺序处理多个 ajax 事件的特性对我不起作用。 我得到了以下场景:
-
h:inputText(更改)
<h:inputText id="consumption_input" value="#{cc.attrs.consumptionInfo.consumption}"> <f:ajax render="#{cc.attrs.outerRenderString}" event="change" listener="#{cc.handleAjaxRequest}" /> </h:inputText> -
h:commandButton(动作)
<h:commandButton id="startComparisonButton" action="#{rateComparisonBean.startRateComparison()}" value="#{bundle.rateResultOverview_startComparison}"> <!-- This is to avoid mixed requests, ajax and full requests --> <f:ajax render="@form"/> </h:commandButton>
如果单独触发,两个元素的事件都会得到正确处理。
当两个事件都在一次单击中触发时会出现问题(在 textInput 中输入一个值,然后单击按钮)。我预计这会导致两个 ajax 请求同步触发(CHANGE-TextField 和 ACTION-commandButton)。
可惜只有一个Ajax-Request(Change-TextField),第二个事件好像完全丢失了。
我已经确保 h:commandButton 的所有先决条件都已满,如下所示: commandButton/commandLink/ajax action/listener method not invoked or input value not updated
如果您能获得有关如何解决此问题的任何提示,我将不胜感激。
环境: Glassfish 3,Mojarra 2.1.3-FCS
【问题讨论】:
-
有趣...您是否在一个易于复制的小型应用程序中验证了这一点?是否可以将 Mojarra 换成 MyFaces 并查看是否有相同的行为?
-
你有没有遇到过 expected 行为,同时触发了两个(动作)监听器?
-
您找到解决方案了吗?我也面临同样的问题。
标签: ajax jsf jsf-2 commandbutton