Problema com Template

2 respostas
jaissonduarte

Olá pessoal algo estranho ocorre com o template
creio que uma vez que é criado um template é só fazer outras páginas a partir de um só né?

Pois bem
na minha aplicação eu organizei minhas páginas JSF em diretórios separados por exemplo
para cliente as páginas para criar, alterar, e mostrar estão na pasta cliente e o mesmo ocorre com outros
mas quando eu executo as páginas perdem o css e fica bem estranho
a página em baixo do template sem formatação
acho que falta por o css no cliente de template mas a onde? meu facelets esta assim:

<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:h="http://java.sun.com/jsf/html">

    <h:head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
        <link href="./../resources/css/default.css" rel="stylesheet" type="text/css" />
        <link href="./../resources/css/cssLayout.css" rel="stylesheet" type="text/css" />
        <title>Facelets Template</title>
    </h:head>

    <h:body>


        <div id="top" class="top">
            <ui:insert name="top">
                Titulo
            </ui:insert>
        </div>
        <div>
            <div id="left">
                <ui:insert name="left">
                    Menus
                </ui:insert>
            </div>
            <div id="content" class="left_content">
                <ui:insert name="content">

                </ui:insert>
            </div>
        </div>
    </h:body>

</html>

e o cliente esta assim:

<html>
    <ui:composition xmlns:ui="http://java.sun.com/jsf/facelets"
                    template="./../template.xhtml">

        <ui:define name="top">
            Cliente Titulo
        </ui:define>

        <ui:define name="content">
            Informações de Cliente
        </ui:define>

    </ui:composition>
</html>

obvio que eu tirei muita informação desnecessária
acho que devo colocar o css também como?

2 Respostas

vinnysoft

Boa Noite!

Cara eu não sei realmente o motivo de isto acontecer, mas já passei por este problema. Me parece que é porque a página não consegue encontrar o diretório do CSS no servidor web/container web, ai acontece este problema.

Não sei se é a solução correta, mas resolvi colocando o mapeamento do CSS no meu template assim:

<link href="${facesContext.externalContext.requestContextPath}/resources/CSS/default.css" rel="stylesheet" type="text/css" />

Obs: Considerando que o arquivo CSS está em /resources/CSS/default.css

A variável ${facesContext.externalContext.requestContextPath} pega o caminho absoluto do contexto onde o JSF está executando, então o mapeamento do CSS passa a funcionar.

Se alguém tiver outra solução ou tiver informações melhores, gentileza postar!

Até +!

elanod
Bom dia,

prezado, o problema dever estar relacionado a como esta escrito seu CSS e a chamada na pagina.

Eu declaro o css  no template. assim como vc, e funciona.

exemplo

body {

color: #8B5A00;

}

exemplo acima vai aparecer onde estiver body, mais em componentes da framework pode nao aparecer mesmo dentro do body

 se fizer assim

.produtoPreco{

font-size: 10px;		

color: #8B5A00;

font-weight: bold;

}

e chamar na pagina

<h:outputText value="Por: " styleClass=“produtoPreco”/>

o css vai c refletir.
t+

Criado 16 de novembro de 2011
Ultima resposta 17 de nov. de 2011
Respostas 2
Participantes 3