PrimeFaces + JSF x IE8: Forçar Modo de Documento do IE8 para o "IE8 Standards"

Pessoal, tenho algumas telas de um sistema JavaWeb usando JSF+Primefaces…

Tudo fica normal no Google Chrome e Firefox 12, como nas imagens abaixo:
Firefox 12:

Quando eu vou para o IE8, as tabelas e botões não seguem o meu padrão.
IE8:

Uma solução paliativa para o problema, seria lá no Developer Tools (Ferramentas de desenvolvedor), setar o Modo de Documento para Padrões do Internet Explorer 8 (IE8 Standards)

IE8 Standards:

No entanto, eu queria isso de forma automática, algum script, ou tag, qualquer solução que forçasse o IE8 a automaticamente setar esse modo de documento. Porque atualmente sempre que abrimos o Sistema no IE8, o Modo de Documento setado é o Modo de Documento Quirks

Alguém pode me ajudar? Já procurei uma solução para isso em vários fóruns, no próprio fórum do primefaces, mas ninguém soube ajudar e as soluções que vi não serviram para mim. Deve ser algo simples, mas realmente não estou conseguindo resolver.
:frowning:

Exemplo dos códigos…
TEMPLATE teste:

[code]

<h:head>
My Application

<h:outputStylesheet library=“css” name=“portal.css” />

<script type="text/javascript">
<!--
     ...
//-->
</script>

</h:head>

<h:body>

</h:body>

[/code]

templateComMenuSemLogout

[code]
<ui:composition xmlns=“http://www.w3.org/1999/xhtml
xmlns:h=“http://java.sun.com/jsf/html
xmlns:f=“http://java.sun.com/jsf/core
xmlns:ui=“http://java.sun.com/jsf/facelets
xmlns:p=“http://primefaces.org/ui
template="/templates/templateTeste.xhtml">

<ui:define name="barraMenu">
	<ui:insert name="menu" />
</ui:define>

<ui:define name="conteudo" >
	<ui:include src="navegacao.xhtml" />
	<ui:include src="/views/comum/loadingDialog.xhtml"/>
	<ui:insert name="content" />
</ui:define>

</ui:composition>[/code]

Eu já mudei a TAG DOCTYPE, e já incluí essa tag meta, mas o programa não faz com que o IE8 renderize no modo padrão.

Sempre vai para o Quirks…

[quote=vanegomesl]Eu já mudei a TAG DOCTYPE, e já incluí essa tag meta, mas o programa não faz com que o IE8 renderize no modo padrão.

Sempre vai para o Quirks…[/quote]

Será que o PrimeFaces põe alguma coisa no HTML gerado que não deixa o IE ir para o modo “Standard”? Não estou com uma instalação aqui para ver exatamente o que é gerado - é interessante você pegar essa página e dar um “View Source” para ver se o HTML tem alguma tranqueira que o IE não está gostando.

Vou dar uma olhada.

Valeu!

Pessoal, consegui resolver. Além de adicionar a tag meta no head, implementamos o seguinte filtro:

[code]public class IE8CompatablityFixFilter implements Filter {
@Override
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
((HttpServletResponse) response).setHeader(“X-UA-Compatible”, “IE=8”);
chain.doFilter(request, response);
}

@Override
public void init(FilterConfig filterConfig) throws ServletException {
// nothing to do
}

@Override
public void destroy() {
// nothing to do
}
}[/code]

http://forum.primefaces.org/viewtopic.php?f=3&t=22724&p=70146#p70146

1 curtida

Este filtro vc declarou aonde?

[quote=camilooscar]Este filtro vc declarou aonde?

[/quote]

Camilo basta vc declarar no seu webxml onde que o sistema vai colocar esse filtro que vc criou!

<filter>
    <filter-name>Filter Compatibilidade</filter-name>
    <filter-class>com.accenture.filter.IE8CompatablityFixFilter</filter-class>
 </filter>

neste código acima criei o filtro dando seu nome e o pacote com o nome da classe…

 <filter-mapping>
    <filter-name>Filter Compatibilidade</filter-name>
    <url-pattern>/*</url-pattern>
 </filter-mapping>

nesse código acima eu chamei o nome do meu filtro criado e dei um pattern pra ele, ou seja, esse filtro vai pegar todas as páginas que eu tiver criado dentro do meu webcontent…não importando se estiver dentro de subpastas…

abs!