Problemas com JSF - Facelets e CSS [RESOLVIDO]

Olá pessoal, tenho certa experiência com Java, Servlets e JSP, mas recentemente comecei a trabalhar em um projeto usando JSF, EJB e Hibernate.
A aplicação tem diversas páginas JSP, que estão sendo acessadas através de um template utilizando o facelets.
Esse template possui diversos componentes do lado direito e esquerdo e o conteúdo no meio da página que deve ser carregado de acordo com o contexto (e.g. cadastrar usuário, listar usuários).
Meu problema é o seguinte: quando a página é carregada aparece tudo certinho, os links funcionam, o css fica certinho.
Porém quando é feita alguma ação como cadastrar usuário, ao retornar a outra página qualquer do programa, esta perde toda a formatação e fica como se tivesse apenas código HTML puro (azul, preto e branco). Eu meio que peguei o bonde andando na aplicação, mas já pedi a outra pessoa (mais experiente) para olhar e aparentemente não há nada errado.
Alguém tem idéia do que está acontecendo?
Agradeço desde já pela atenção e sintam-se à vontade para me ajudar

:wink:

normalmente você tem uma página onde você inclui seus templates. nessa página vc linka seu css.
qdo vc passar a outra página, nessa outra vc mantém o link pro seu css.

uso facelets a algum tempo e nunca tive esse problema.

O css está incluído nas duas páginas, mas ao carregar algum conteúdo do template o normal pelo que eu entendi seria que ele ñ recarregasse tudo, mas pelo que está acontecendo com a página, parece que ele recarrega toda a página sem formatação.
Fica tudo limpo em P&B, não sei qual a causa disso já olharam meu código e disseram que não tinha erro, mas ninguém tem idéia do que seja.
Agradeço qualquer sugestão!

:wink:

como vc está importando sua folha de estilos?

Poste o código para que possamos analizar? como você esta fazendo a importação?

As páginas de conteúdo são carregadas no centro da página através de um click em um botão como este:

<form jsfc="h:form"> <a jsfc="h:commandLink" action="#{Controller.createSetup}">Novo usuário</a> </form>

Este action aciona uma regra de navegação que redireciona para a uma página newUser.jsf
Esta página é carregada como conteúdo do template, até aí tudo bem, mas isso só funciona no primeiro clique, ao clicar duas vezes ou redirecionar para outra página a formataçã existente no template some completamente.
Todas aspáginas de conteúdo tem essas tags:

<ui:composition template="../template/template.xhtml">
        <ui:define name="content"> 

Espero ter explicado melhor.
Agradeço pela ajuda.

O css é importado no template da seguinte forma:

 <link href="css/site.css" rel="stylesheet" type="text/css" />

Coloquei em anexo uma imagem da página depois que ocorre o problema.


Olá pessoal aparentemente o problema foi resolvido.
O código em si ñ estava errado, mas outro integrante do projeto deu uma olhada e percebeu que o problema estava na importação do css, quando o jsf era carregado (duas vzs ) ñ se sabe pq ele ñ importava o css.
A solução foi indicar o caminho completo, da seguinte forma:

<link href="#{pageContext.request.contextPath}/css/site.css" rel="stylesheet" type="text/css" />

em lugar de

<link href="css/site.css" rel="stylesheet" type="text/css" />

Espero ajudar outras pessoas que tenham este problema e agradeço a todos pela atenção!

:smiley:

como assim caminho completo : ?

<link href="#{pageContext.request.contextPath}/css/site.css" rel=“stylesheet” type=“text/css” />
<link href="#{???}/css/site.css" rel=“stylesheet” type=“text/css” />

não entendi !

Tive o mesmo problema e resolvi assim

[code]

[/code]

absss

Joa Boa noite ! Posta todo teu códgio aqui ! por favor !

templateTable.xhtml

...
<head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
        <link href="#{facesContext.externalContext.requestContextPath}/css/default.css" rel="stylesheet" type="text/css" />
        <link href="#{facesContext.externalContext.requestContextPath}/css/tableLayout.css" rel="stylesheet" type="text/css" />
        <title>Pattern</title>
    </head>
...

O css esta na mesma pasta

abs
João Sávio

João obrigado segunda no trabalho eu testo… agora vou correr a tras do controle de usuarios, que ta me matando as noites de sono…

bom fim de semana !

jr

Olá pessoal!
Sei que já resolveram seus problemas … mas vai ai uma dica bem legal!

Para resolver esse problema o JSF 2.0 criou a tag

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

Obviamente essa tag deve está dentro de … do seu templates e não mais em .

Isso devido a padronização do local da pasta onde está os arquivos css, com o Java EE6, que agora devem está em…

Projeto/Páginas Web/resources/css/styles.css

Assim vocês tem mais uma maneira para resolver esse problema.

Valeu!

ajudou veio, vlw XDDD

[quote=manuel.fgj]Olá pessoal!
Sei que já resolveram seus problemas … mas vai ai uma dica bem legal!

Para resolver esse problema o JSF 2.0 criou a tag

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

Obviamente essa tag deve está dentro de … do seu templates e não mais em .

Isso devido a padronização do local da pasta onde está os arquivos css, com o Java EE6, que agora devem está em…

Projeto/Páginas Web/resources/css/styles.css

Assim vocês tem mais uma maneira para resolver esse problema.

Valeu!
[/quote]

Só para melhorar a informação do manuel.fgj

<h:body>
<h:outputStylesheet library="css" name="style.css" target="body"/>
...
</h:body>

E o .css deve ficar no caminho “resources”. Exemplo: projeto/WebContent/resources/css/xxx.css
Não precisa citar a pasta css na tag outputStylesheet.

Muito bom! Eu estava com este problema e este tópico foi minha solução.

<link href="#{facesContext.externalContext.requestContextPath}/css/default.css" rel="stylesheet" type="text/css" /> <link href="#{facesContext.externalContext.requestContextPath}/css/tableLayout.css" rel="stylesheet" type="text/css" />

Obrigada!!! me ajudou também!

Abraços.

Valeu joaosavio, estou usando jsf 1.2 + facelets e funcionou!

Valeu galera!
Estava com o mesmo problema, de forma alguma conseguia importar o css do c…

<link href="#{facesContext.externalContext.requestContextPath}/content/agenda/css/style.css" rel="stylesheet" type="text/css" />