【发布时间】: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