Problemas com Jsf e Struts Tiles

6 respostas
wagnerre

Ola pessoal, eu criei um projeto utilizando jsf e tiles. a estrutura do tiles ficou assim

Header

main

Footer

O problema que estou tendo é que no Header eu criei uma pagina estática apenas com o logotipo da pagina, porem esse logotipo não carrega. Ja tentei colocar com o componte do faces, achando que poderia ser um problema de compatibilidade mas nada funcionou. Alguem ja passou por esse problema

6 Respostas

gilliard_santos

Como voce está referenciando essa imagem?
se voce tiver colocando um caminho relativo à página que fica no header, preste atencao se o mesmo caminho é válido em relacao à página que usa o template. pode ser isso.

wagnerre

Você diz em usar o caminho relativo ao jsp que carrega todas as partes e não ao do header?

gilliard_santos

isso mesmo. usa o caminho da página que estende/usa o template, e nao de cada página que compõe o template, como o header, no teu caso.
faz isso e fala se funcionou.

wagnerre

também não funcionou, colocando o caminho a partir do jsp base. Não consigo entender o que aocntece.

gilliard_santos

Faz o seguinte teste, além do logo, põe algum texto para ver se a pagina esta sendo carregada corretamente. Se o texto aparecer, é bem provavel que o problema seja em relação ao caminho da imagem mesmo. Agora se nem o texto aparecer, é porque o erro esta acontencendo em um passo anterior a esse ainda… aí é bem provavel que o caminho para a página é que nao esteja legal.
Faça esses testes e qualquer coisa coloque aqui como esta a sua estrutura de diretórios e os caminhos que voce está usando em cada caso (no template, na pagina head e na pagina que usa o template).

wagnerre

Bom, tudo que tu falou eu ja tentei.

A estrutura do meu proejto está asim

as estrutura de das minhas paginas começa em /jsp

e dentro de /jsp tem as pastas que separam os modulos alem da pasta images

ha também umas pasta template onde se encontra o jsp que centraliza o layout

dentro dele eu chamo o header.html que fica em um outro diretório dentro jsp chamado common mais ou menos assim.

/jsp
/jsp/common
/jsp/images
/jsp/modulo1
/jsp/modulo2
/jsp/template

Vou colocar o codigo da pagina header.jsp e o da pagina que centraliza o layout

layout.jsp

<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
<%@ taglib uri="http://myfaces.apache.org/tomahawk" prefix="t" %>
<%@ taglib uri="http://jakarta.apache.org/struts/tags-tiles" prefix="tiles" %>
<%@ taglib uri="http://java.sun.com/jstl/core" prefix="c" %>

<tiles:importAttribute scope="request"/>

<%--
ATRIBUTOS DO LAYOUT:
	titulo(String)
	javascript(Tile)
	menu_principal(Tile)
	menu(Tile)
	main(Tile)
--%>

<f:loadBundle basename="#{webConstant.MESSAGE_BUNDLE_BASE}" var="msg0"/>


<t:document>
	<t:documentHead>
		<f:verbatim><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/></f:verbatim>
		
		<t:htmlTag value="title">
			<h:outputText value="#{titulo}"/>
		</t:htmlTag>
		
		<t:stylesheet path="/css/estilos.css"/>

		
		<f:verbatim>
			<tiles:insert attribute="javascript" flush="false" ignore="true"/>
		</f:verbatim>
	</t:documentHead>
	
	<t:documentBody>
			

		//cabeçario
		<tiles:insert page="../common/header.html" flush="false" ignore="true" />  

		
		<tiles:insert attribute="menu" flush="false" ignore="true"/>
		
		<c:if test="${menu != null}">
			<t:htmlTag value="br"/>
			<t:htmlTag value="br"/>
		</c:if>
		
		<h:messages globalOnly="true" showSummary="true" showDetail="true" infoClass="msg_info" errorClass="msg_erro"/>
		
               //paginas que carregarão no centro
		<tiles:insert attribute="main" flush="false"/>
		
                //rodapé
		<tiles:insert page="../common/footer.html" flush="false" ignore="true" />  

		
	</t:documentBody>
</t:document>

header.html

<table width="100%" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td width="223"><img src="../images/Topo_1.gif" width="541" height="70"></td>
    <td width="100%" background="../images/Topo_2.gif"><img src="../images/spacer.gif"></td>
    <td width="496"><img src="../images/Topo_3.gif" width="186" height="70"></td>
  </tr>
</table>

a pagina do header.html é inserido onde está comentado //cabeçario na pagina template

Criado 19 de dezembro de 2006
Ultima resposta 21 de dez. de 2006
Respostas 6
Participantes 2