Pessoal,
Peço a ajuda de vocês porque estou com um problema que precisa ser resolvido urgentemente. Estou já a algum tempo batendo cabeça aqui e não consigo resolve-lo, e meu prazo está acabando
No meu projeto, estou usando um framework da sitemesh, que possui um arquivo xml chamado decorators.xml que “monta” o layout das paginas JSP.
Meu arquivo decorator é o seguinte:
decorators.xml
<?xml version="1.0" encoding="ISO-8859-1"?>
<decorators defaultdir="/">
<excludes>
<pattern>/REST*</pattern>
<pattern>/CAU*</pattern>
<pattern>/teste.jsp</pattern>
</excludes>
<decorator name="externo" page="/WEB-INF/jsp/Layout/externo.jsp">
<pattern>*_externo.jsp</pattern>
<pattern>*Externo.action</pattern>
</decorator>
<decorator name="layout" page="/WEB-INF/jsp/Layout/layout.jsp">
<pattern>*.jsp</pattern>
<pattern>*.action</pattern>
</decorator>
</decorators>
Ou seja, todos os arquivos que terminei com action ou com jsp, devem utilizar o layout do arquivo layout.jsp, que é este:
<%@ page contentType="text/html; charset=iso-8859-1" language="java" %>
<%@taglib uri="/struts-tags" prefix="s" %>
<%@taglib uri="http://www.opensymphony.com/sitemesh/decorator" prefix="decorator" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title><decorator:title default="Câncer Familial" /></title>
<link href="css/css_sis.css" rel="stylesheet" type="text/css" />
<decorator:head />
</head>
<body>
<table width="100%" height="100%" border="0">
<tr>
<td height="21" colspan="2">
<table width="100%" border="0">
<tr>
<td class="tit_pag"><%@include file="topo.jsp" %></td>
</tr>
</table>
</td>
</tr>
<tr>
<td width="190px" rowspan="2" align="center" valign="top">
<br />
<table width="90%" border="0">
<tr>
<td width="99%" align="center" valign="top"><%@include file="menu.jsp" %></td>
<td width="1%" align="center" background="imgs/linha_menu_vert.gif"> </td>
</tr>
</table>
</td>
<td width="83%" valign="top"><decorator:body/></td>
</tr>
<tr>
<td height="100%" valign="bottom">
<table width="100%" border="0">
<tr>
<td align="right"><%@include file="rodape.jsp" %></td>
</tr>
</table>
</td>
</tr>
</table>
</body>
</html>
O meu problema é o seguinte… Para as páginas que estão fora do diretorio WEB-INF, o decorator está funcionando. A pagina é exibida com o menu ao lado, com o topo.jsp e com o rodape.jsp. Mas quando acesso alguma opção do menu que é uma action, ele carrega a pagina JSP em cima da primeira, sem menu, sem topo, sem rodape. Ele encontra a pagina, recebe o resultado, mas não aplica o decorator a ele. Alguem poderia dar uma luz?