RichFaces 3.x on IE9

RichFaces 3.X works fine on IE8 but it does NOT work on IE9.
There have been issues logged about fixing it to make it work on IE9 but eventually this fix was moved to RichFaces 4.0.
You might have an existing RF 3.X application that can not be ported to RF 4.0. If you want to get it working on IE-9, follow the steps mentioned below:
1) First lets configure a Filter in web.xml
    <filter>
        <filter-name>IE9CompatablityFixFilter</filter-name>
        <filter-class>com.tudip.managedbeans.IE9CompatablityFixFilter</filter-class>
    </filter>

    <filter-mapping>
        <filter-name>IE9CompatablityFixFilter</filter-name>
        <servlet-name>Faces Servlet</servlet-name>
        <url-pattern>/faces/*</url-pattern>
        <dispatcher>REQUEST</dispatcher>
        <dispatcher>FORWARD</dispatcher>
        <dispatcher>INCLUDE</dispatcher>
    </filter-mapping>

Note:- This filter is configure against the ‘Faces Servlet’ servlet for every Ajax request.

2) Now write a Write IE9CompatablityFixFilter class that we mentioned in the filter-mapping:
public class IE9CompatablityFilter implements Filter {

    public void init(FilterConfig filterConfig) throws ServletException {
    }

    public void doFilter(ServletRequest request, ServletResponse response,
            FilterChain chain) throws IOException, ServletException {
        ((HttpServletResponse) response).setHeader("X-UA-Compatible",
                "IE=EmulateIE8"); // or IE=EmulateIE
        chain.doFilter(request, response);
    }

    public void destroy() {
    }
}

Now Application should work on IE9.
To check this on browser, open IE 9 and in case you have Developer Toolbar installed,  press F12 key, it will open developer toolbar.
You would notice that after loading the page the ‘Document Mode’ would be changed to I8 Standards although you are using IE9.