Problemas com JSF - Facelets e CSS [RESOLVIDO]

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" />

Isso ajuda muito mas o problema agora é como chamar a imagem pelo css,
já tentei de varias formas e nada uma delas é essa.

background: url("#{resources[‘imagens:top.png’]}");

Fala galera…

Li este tópico e utilizei todas as formas citadas.

Quando carrego as páginas diretamente o CSS está perfeito, mas ao navegar entre elas já era o CSS
perde o contexto.

Teria uma outra forma para ajustar isso, configurando o contexto do projeto?

Obrigado