Richfaces: problema com CSS e UTF-8

Seguinte, to com uns errinhos toscos aqui num projeto, estou migrando ele pro richfaces, ele inicialmente estava feito com tomahowk+tiles, estou passando pra richfaces.

seguinte, os css que sempre funcionaram:

<%@taglib prefix="f" uri="http://java.sun.com/jsf/core"%> <%@taglib prefix="h" uri="http://java.sun.com/jsf/html"%> <html> <head> <link type="text/css" rel="stylesheet" href="../css/blabla1.css"> <link type="text/css" rel="stylesheet" href="../css/blabla2.css"> </head>

Agora não estão sendo “carregados”:

[code]<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”>
<html xmlns=“http://www.w3.org/1999/xhtml
xmlns:ui=“http://java.sun.com/jsf/facelets
xmlns:h=“http://java.sun.com/jsf/html
xmlns:f=“http://java.sun.com/jsf/core
xmlns:a4j=“http://richfaces.org/a4j
xmlns:rich=“http://richfaces.org/rich”>

<head>
<link type=“text/css” rel=“stylesheet” href="…/css/blabla1.css">
<link type=“text/css” rel=“stylesheet” href="…/css/blabla2.css">
</head>
[/code]

As páginas com acentuação, estão retornando um erro também:

que não aparece quando os caracteres “especiais” são removidos, fiz uns testes mas não resolveu.

Quem já trabalha com o Richfaces tem alguma dicas sobre essas besteirinhas ai?

Valeu!

cara eu uso RichFaces + Facelets…e passei por um problema IGUAL ao seu, e no MEU caso as mudanças abaixo resolveram…

ANTES de qualquer linha eu adicionei:

<?xml version="1.0" encoding="ISO-8859-1"?>

e na declaração do css tive que retirar o type, ficando assim:

<link rel="stylesheet" href="../BLABLABLA.css" />

no seu caso tudo isso seria assim:

<?xml version="1.0" encoding="ISO-8859-1"?>
   <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
   <html xmlns="http://www.w3.org/1999/xhtml"  
         xmlns:ui="http://java.sun.com/jsf/facelets"  
         xmlns:h="http://java.sun.com/jsf/html"  
         xmlns:f="http://java.sun.com/jsf/core"  
         xmlns:a4j="http://richfaces.org/a4j"  
         xmlns:rich="http://richfaces.org/rich">  
           
   <head>  
   <link  rel="stylesheet" href="../css/blabla1.css">  
   <link  rel="stylesheet" href="../css/blabla2.css">  
  </head>  

mas repetindo…funcionou comigo no netbeans…como caso, é um caso. testa ai…vê se dá certo, boa sorte! :smiley:

p.s agora vi na taglib q vc tmb ta usando facelets, então deve funcionar…

flw Hewerton

[quote=Javabuntu]cara eu uso RichFaces + Facelets…e passei por um problema IGUAL ao seu, e no MEU caso as mudanças abaixo resolveram…

ANTES de qualquer linha eu adicionei:

<?xml version="1.0" encoding="ISO-8859-1"?>

[/quote]

Eu tbm tive o mesmo problema, e resolvi da mesma maneira…

Mas isso me intrigou, pq na teoria UTF-8 não teria que reconhecer a acentuação normalmente ?

[quote=paulovittor23]
Mas isso me intrigou, pq na teoria UTF-8 não teria que reconhecer a acentuação normalmente ?[/quote]

pior…nunca pesquisei sobre o q poderia ser exatamente…tudo que testei foi que quando usei Facelets…deu problema… tirava o facelets…tudo resolvido… a princípio no meu caso tive a certeza que foi algo relacionado com o facelets… mas o pq ainda é mistério…
flw Hewerton

só pra ter certeza:

você está usando facelets né?

Quanto ao UTF-8, não funcionou, adicioneu a linha sugerida, mas a mensagem é outra agora, indicando o mesmo problema aparentemente:

[quote]Erro no processamento de XML: entidade não definida

Usuário:[/quote]

Log do tomcat:

o CSS continua igual, sem carregar.

estranho…

[quote=Leozin]só pra ter certeza:

você está usando facelets né?[/quote]
Sim…

você pode colocar o encoding ISO-8859-1 no teu template, mas pelo que ví, as páginas que não são templates tem que ser UTF-8

mas eu não ví problemas de acentos com o UTF-8 e facelets (ainda)

Tentei com:

<a4j:loadStyle src="../css/blabla.css" />

e tbm num foi…

Tente isto amigo


&lt;link rel="StyleSheet" type="text/css" href="css/tabelas.css" media="screen" &gt;

Estou usando facelets tbm, e meu include do css está feito como citado acima pelo lgweb.

Muito estranho, não vai nem o css e nem a acentuação.

Alias, se não fechar “/>” a tag link da um erro no xhtml e nem renderiza.

Será alguma entrada no faces-config? o meu esta basicamente o padrõa que vem na documentação do Richfaces, só tem o managed-beans a mais.

Olha eu uso Richfaces com Facelets e faço assim:

Como o outro amigo falou coloque esta linha no template e em todas as páginas:

<?xml version='1.0' encoding='ISO-8859-1' ?>

No caso do CSS vc pode fazer um dinâmico criando uma página xhtml com o css:

[color=blue]
ui:composition

#topo{ background-image : url(${facesContext.externalContext.requestContextPath}/img/topo.jpg); background-repeat: no-repeat; padding-top: 0; position: relative; height: 76px; background-color: #C3D9FF; } .footer{ balckground: #ffffff; } .rich-message-label { color:red; } .rich-panel-body{ background-color:#FFF; }

</ui:composition>

[/color]

e no template colocar essa tag dentro do HEAD:

[color=blue]<ui:include src="/css/dinamic-css.xhtml" />[/color]

Comigo funcionou.

Eu já havia testado isso tbm, testei novamente, e continua igual…

no meu web.xml tem apenas essa entrada referente a isso:

<context-param>
	<param-name>org.richfaces.LoadStyleStrategy</param-name>
	<param-value>ALL</param-value>
</context-param>
<context-param>
	<param-name>org.richfaces.LoadScriptStrategy</param-name>
	<param-value>ALL</param-value>
</context-param>

[quote=Luiz Aguiar]Eu já havia testado isso tbm, testei novamente, e continua igual…

no meu web.xml tem apenas essa entrada referente a isso:

<context-param> <param-name>org.richfaces.LoadStyleStrategy</param-name> <param-value>ALL</param-value> </context-param> <context-param> <param-name>org.richfaces.LoadScriptStrategy</param-name> <param-value>ALL</param-value> </context-param> [/quote]

olhei no meu web.xml e não tem esses parâmetros :frowning:
depois vou ver a documentação pra ver a função deles.

meu web.xml tah assim:

<?xml version="1.0" ?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
         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" 
         version="2.5">
    
    <!-- Ajax4jsf -->
    
    <context-param>
        <param-name>org.richfaces.SKIN</param-name>
        <param-value>blueSky</param-value>
    </context-param>
    
    <!-- Seam -->
    
    <listener>
        <listener-class>org.jboss.seam.servlet.SeamListener</listener-class>
    </listener>
    
    <filter>
        <filter-name>Seam Filter</filter-name>
        <filter-class>org.jboss.seam.servlet.SeamFilter</filter-class>
    </filter>
    
    <filter-mapping>
        <filter-name>Seam Filter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
    
    <servlet>
        <servlet-name>Seam Resource Servlet</servlet-name>
        <servlet-class>org.jboss.seam.servlet.SeamResourceServlet</servlet-class>
    </servlet>
    
    <servlet-mapping>
        <servlet-name>Seam Resource Servlet</servlet-name>
        <url-pattern>/seam/resource/*</url-pattern>
    </servlet-mapping>
    
    <!-- Facelets development mode (disable in production) -->
   
    <context-param>
        <param-name>facelets.DEVELOPMENT</param-name>
        <param-value>true</param-value>
    </context-param>
    
    <!-- JSF -->
   
    <context-param>
        <param-name>javax.faces.DEFAULT_SUFFIX</param-name>
        <param-value>.xhtml</param-value>
    </context-param>
    
    <servlet>
        <servlet-name>Faces Servlet</servlet-name>
        <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>
    
    <servlet-mapping>
        <servlet-name>Faces Servlet</servlet-name>
        <url-pattern>*.seam</url-pattern>
    </servlet-mapping>
    
    <security-constraint> 
        <display-name>Restrict raw XHTML Documents</display-name>
        <web-resource-collection>
            <web-resource-name>XHTML</web-resource-name>
            <url-pattern>*.xhtml</url-pattern>
        </web-resource-collection>
        <auth-constraint/>
    </security-constraint>
    
    <!-- Improving JSF performance in Seam Applications = BEGIN -->
    <context-param>
        <param-name>org.jboss.seam.core.init.debug</param-name>
        <param-value>false</param-value>
    </context-param>   
    
    <context-param>
        <param-name>javax.faces.STATE_SAVING_METHOD</param-name>
        <param-value>server</param-value>
    </context-param>	
    
    <context-param>
        <param-name>facelets.BUFFER_SIZE</param-name>
        <param-value>500000</param-value>
    </context-param>	
    
    <filter>
        <display-name>Ajax4jsf Filter</display-name>
        <filter-name>ajax4jsf</filter-name>
        <filter-class>org.ajax4jsf.FastFilter</filter-class>
        <init-param>
            <param-name>forceparser</param-name>
            <param-value>false</param-value>
        </init-param>
    </filter>
    <filter-mapping>
        <filter-name>ajax4jsf</filter-name>
        <url-pattern>*.seam</url-pattern>
        <dispatcher>REQUEST</dispatcher>
        <dispatcher>FORWARD</dispatcher>
        <dispatcher>INCLUDE</dispatcher>
    </filter-mapping>
    
    <!-- Improving JSF performance in Seam Applications = END -->
    
</web-app>

Na verdade Luiz o que acontece é que você está utilizando a versão mais atual do Facelets e Rich Faces e esta pelo que parece tem problemas com UTF-8. Temos aplicativos que utilizam a versão anterior e funcionam perfeitamente com acentuação, porém ao migrarmos para a nova versão encontramos estes problemas com o encoding e estamos correndo atrás para consultar a documentação… qualquer novidade, posto aqui o resultado. Até!

Eu utilizei a dica do nosso amigo e funcionou.

&lt;?xml version=&quot;1.0&quot; encoding=&quot;ISO-8859-1&quot;?&gt;

Estou usando RichFaces juntamente com JBoss Seam.

Abraço.