2012-01-17 95 views
3

我正在运行一个使用RichFaces 4.1.0,mojarra 2.0.2和apache tomcat 6.0.32的web应用程序。 我的应用程序在除IE9以外的所有不同浏览器上运行良好。 它在IE 9中停止工作,并且不会生成任何javascript错误或tomcat日志。 只要发生a4j重新渲染操作,它就会失败。 由于设计限制,我无法使用meta标签来设置IE9的兼容模式。JSF - RichFaces - IE9重新渲染失败

下面是我的代码和web.xml:

<h:body> 
<h:form> 
    <rich:tabPanel switchType="client"> 
     <rich:tab header="Overview"> 
      <span>Total Number of Applications</span> 
     </rich:tab> 
     <rich:tab header="Options" onheaderclick="refreshOptions();" > 
      <h:outputText value="Logging Level:" /> 
      <rich:select id="optionsLogLevel" 
         value="#{optionsBean.logLevel}" 
         required="true" 
         requiredMessage="Logging Level is required"> 
       <f:selectItems value="#{optionsBean.logLevelsList}" /> 
      </rich:select> 
     </rich:tab> 
    </rich:tabPanel> 
    <a4j:jsFunction name="refreshOptions" 
       action="#{optionsBean.refreshOptions}" 
       render="optionsLogLevel" execute="@this" /> 
</h:form> 

的web.xml

<?xml version="1.0" encoding="UTF-8"?> 
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee  http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> 

<servlet> 
    <servlet-name>Faces Servlet</servlet-name> 
    <servlet-class>javax.faces.webapp.FacesServlet</servlet-class> 
</servlet> 
<servlet-mapping> 
    <servlet-name>Faces Servlet</servlet-name> 
    <url-pattern>*.jsf</url-pattern> 
</servlet-mapping> 
<context-param> 
    <param-name>javax.faces.PROJECT_STAGE</param-name> 
    <param-value>Production</param-value> 
</context-param> 
<context-param> 
    <param-name>com.sun.faces.enableEarlyMissingResourceLibraryDetection</param-name> 
    <param-value>true</param-value> 
</context-param> 
<welcome-file-list> 
    <welcome-file>index.jsp</welcome-file> 
</welcome-file-list> 
<listener> 
    <listener-class>com.mitel.bpi.webadmin.model.BPIWebAdminContextListener</listener-class> 
</listener> 

+0

什么是设计约束?我会建议寻找可以帮助老年人IE浏览器(或IE9在compat模式)仍然正确显示现代CSS的polyfills。 – 2012-03-15 21:36:44

+1

在阿贾克斯和IE9的Mojarra有几个问题。你可以尝试目前的Mojarra版本2.1.7吗? – fischermatte 2012-03-20 19:41:20

回答

2

你很可能击中JAVASERVERFACES-2063,打破在IE9阿贾克斯通信由于jsf.js中错误实现的浏览器检测。

升级到Mojarra> = 2.1.7可能会解决您的问题。升级RichFaces的同时,4.1.0.Final现在已经很长时间了。