【问题标题】:JSF/Primefaces - Ajax request sometimes skips JSF phasesJSF/Primefaces - Ajax 请求有时会跳过 JSF 阶段
【发布时间】:2014-06-12 09:48:14
【问题描述】:

遇到这个问题有一段时间了,我有点卡住了。

使用:JSF 2.0、Primefaces 3.5、Weblogic Server 10.35、IE 9

问题:有时ajax请求处理不正确,需要多次点击才能得到想要的结果。

当我调试 JSF 阶段时,我可以看到在第 1 阶段恢复视图之后,执行渲染响应阶段会跳过更新模型和调用应用程序阶段。 我已将我的应用程序条带化到最低限度,但问题仍然存在。

xhtml:

<h:form id="searchForm" >
    <p:commandLink id="searchLink" 
        value="#{message['menu.search']}"
        actionListener="#{searchController.search}"
        update=":searchForm:searchContainer"/>

    <h:panelGroup id="searchContainer" layout="block">
            <h:outputText value="#{searchForm.searchResult}" />
    </h:panelGroup>
</h:form>

Ajax 请求尝试失败:

Request 
javax.faces.partial.ajax=true&javax.faces.source=searchForm%3AsearchLink&javax.faces.partial.execute=%40all&javax.faces.partial.render=searchForm%3AsearchContainer&searchForm%3AsearchLink=searchForm%3AsearchLink&searchForm=searchForm&javax.faces.ViewState=-2472092625767957060%3A2001152572050371116

Response:
<?xml version='1.0' encoding='UTF-8'?>
<partial-response><changes><update id="javax.faces.ViewState"><![CDATA[3781425509483626748:3390680605459134566]]></update></changes></partial-response>

这只发生在我们的 IE9 测试环境中,而不是本地或开发环境中,这让我相信它与 weblogic 服务器以及它的配置方式或 IE 有关。 但我在这里不知所措,如果我能从哪里开始寻找解决方案,我将不胜感激。

【问题讨论】:

  • 这通常是验证/转换错误或调用FacesContext#responseComplete() 的结果。而这仅发生在您所说的 IE 中?
  • 我无法在 Firefox 或 Chrome 中重现此错误。我第一次猜测的验证/转换错误,但在删除所有验证/转换后,问题仍然存在。我们不是在代码中“手动”调用 FacesContext#responseComplete。
  • 我现在终于解决了这个问题。问题与此有关:blogs.msdn.com/b/ieinternals/archive/2010/11/22/…
  • 你应该发布一个答案

标签: ajax jsf jsf-2 primefaces weblogic-10.x


【解决方案1】:

问题原来是 IE 和身份验证。感谢post

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-11-24
    • 1970-01-01
    • 2012-06-27
    • 2016-02-03
    • 1970-01-01
    • 2012-11-24
    • 2011-02-27
    相关资源
    最近更新 更多