内部网应用JSF开口在IE9兼容模式(intranet jsf application openin

2019-10-21 07:55发布

我已经做了内部网网站在JSF中,primefaces。 监守IE 9默认它在兼容性视图中打开。 我知道我应该使用标签

<meta http-equiv="X-UA-Compatible" content="IE=edge" />

但它不工作,而不是它显示

HTML1115:X-UA-兼容META标记忽略,因为原稿模式已经完成( 'IE =边缘')。

我已经使用该标记作为这样

<!DOCTYPE html>
<html lang="en" xmlns="http://www.w3.org/1999/xhtml"
    xmlns:f="http://java.sun.com/jsf/core"
    xmlns:h="http://java.sun.com/jsf/html"
    xmlns:ui="http://java.sun.com/jsf/facelets"
    xmlns:p="http://primefaces.org/ui">
<h:head>
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <title>Wan</title>



</h:head>

这是它显示了开发者工具

<head>
<TITLE>Wan</TITLE><LINK rel=stylesheet type=text/css href="/Wan/javax.faces.resource/theme.css.jsf?ln=primefaces-redmond"><LINK rel=stylesheet type=text/css href="/Wan/javax.faces.resource/primefaces.css.jsf?ln=primefaces&amp;v=5.1">
<SCRIPT type=text/javascript src="/Wan/javax.faces.resource/jquery/jquery.js.jsf?ln=primefaces&amp;v=5.1"></SCRIPT>

<SCRIPT type=text/javascript src="/Wan/javax.faces.resource/primefaces.js.jsf?ln=primefaces&amp;v=5.1"></SCRIPT>

<SCRIPT type=text/javascript src="/Wan/javax.faces.resource/jquery/jquery-plugins.js.jsf?ln=primefaces&amp;v=5.1"></SCRIPT>
<LINK rel=stylesheet type=text/css href="/Wan/javax.faces.resource/charts/charts.css.jsf?ln=primefaces&amp;v=5.1">
<SCRIPT type=text/javascript src="/Wan/javax.faces.resource/charts/charts.js.jsf?ln=primefaces&amp;v=5.1"></SCRIPT>

<STYLE id=ex_canvas_>canvas {
    TEXT-ALIGN: left; WIDTH: 300px; DISPLAY: inline-block; HEIGHT: 150px; OVERFLOW: hidden
}
</STYLE>
<LINK rel=stylesheet type=text/css href="/Wan/javax.faces.resource/wanstyle.css.jsf?ln=css">
<META content=IE=edge http-equiv=X-UA-Compatible>

我猜测这是发生怎么一回事,因为在其他职位meta标签必须是在头顶的很多被提及,但我不知道我怎么能实现这一目标。

如何让我的元标记在我的应用程序的第一个标签

这完全是什么在IE控制台显示

HTML1202: http://10.164.210.37:8080/Wan/welcome.jsf is running in Compatibility View because 'Display intranet sites in Compatibility View' is checked. 
welcome.jsf
HTML1115: X-UA-Compatible META tag ('IE=edge') ignored because document mode is already finalized. 
welcome.jsf
S15: :visited and :link styles can only differ by color. Some styles were not applied to :visited. 

Answer 1:

在JSF PrimeFaces,你必须使用以下方法来重新排列标签

<f:facet name="first">
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
  </f:facet>

它使用移动代码的元所生成的报头的顶部和它的工作

从下面的链接



Answer 2:

您可以使用Servlet过滤器来解决这个问题

添加到您的web.xml

<filter>
    <filter-name>EdgeFilter</filter-name>
    <filter-class>com.my.package.filter.EdgeFilter</filter-class>
</filter>
<filter-mapping>
    <filter-name>EdgeFilter</filter-name>
    <url-pattern>*.jsf</url-pattern>
</filter-mapping>

Java代码:

public class EdgeFilter implements Filter {

    @Override
    public void destroy() {
    }

    @Override
    public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException,
            ServletException {
        if (((HttpServletRequest) req).getRequestURI().endsWith(".js.jsf")
                || ((HttpServletRequest) req).getRequestURI().endsWith(".css.jsf")) {
            chain.doFilter(req, res);
        } else {
            HttpServletResponse response = (HttpServletResponse) res;
            response.setHeader("X-UA-Compatible", "IE=edge"); // No more Compatibility Mode
            chain.doFilter(req, res);
        }

    }

    @Override
    public void init(FilterConfig arg0) throws ServletException {
    }

}


文章来源: intranet jsf application opening in compatibility mode in IE9