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