[RESOLVIDO]Sitemesh nao esta "decorando" quando as chamados sao via @Path

Quando chamo meu controller anotado com @Path o sitemesh nao decora as paginas.

Por exemplo


@Resource
public class ProdutosController {

        @Path("/produtos")
	@Get
	public List<Produto> lista(){
		//
	}

passando pela url /app/produtos o sitemesh nao aplica os templates. O metodo executa normalmente e a pagina redirecionada tambem, mas sem os templates.

Se eu comentar a anotacao @Path e chamar /app/produtos/lista os templates sao aplicados.

Tenho que fazer alguma configuracao adicional? Algo que estou errando?

coloque a declaração do filtro do sitemesh depois da do vraptor, coloque o pattern para *.jsp e só habilite o dispatcher de FORWARD que vai funcionar

Feito como voce falou, Lucas e nada. Vou continuar tentando aqui.

como vc configurou o sitemesh no web.xml?

[code]sitemesh
com.opensymphony.sitemesh.webapp.SiteMeshFilter

<filter-mapping>
  <filter-name>sitemesh</filter-name>
  <url-pattern>*.jsp</url-pattern>
  <dispatcher>FORWARD</dispatcher>

[/code]

Sim, como acima, depois do filtro do vraptor. Até porque ele decora normalmente qualquer pagina, exceto as que sao chamadas usando a annotation @Path. Se eu comentar a annotation e chamar diretamente o nome do metodo, tudo funciona normalmente.

como tá o seu decorators.xml?

Eu alterei os controllers para que nao usassem annotations, chamando diretamente pelo nome do metodo. Ok, tudo funcionou normalmente, mas como agora eu coloquei os css nos arquivos, tentando de novo eu percebi que o sitemesh decora as jsps sim, mas nao aplica os css, coincidentemente, ou nao, nos casos onde uso o @Path.

ah tá…

o problema é que vc deve estar usando caminhos relativos pro css…

não faça isso… use sempre caminhos absolutos (vc pode usar o <c:url pra isso tb)

Eh esse mesmo o problema.

Pessoal,

Estou apanhando um pouco do SiteMesh aqui e estou com um problema semelhante, porém acredito que bem mais simples.

Estou fazendo uma aplicação com o Strtus2 (2.2.3.1) e o SiteMesh (2.4.2). O decorator está funcionando para a página que está na tag do web.xml, mas não está funcionando para outras pastas.

Explicando melhor, o sitemesh não está decorando depois que eu passo por dentro de uma Action. Estou fazendo o mapeamento do struts por convenção (annotation) e não sei se isto está atrapalhando de alguma forma.

Seguem meus códigos.

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
  <display-name>FechamentoMonitor</display-name>
  <welcome-file-list>
    <welcome-file>/WEB-INF/jsp/fechamentoIndex.jsp</welcome-file>
  </welcome-file-list>
  <filter>
    <filter-name>struts2</filter-name>
    <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
  </filter>
  <filter>
    <filter-name>sitemesh</filter-name>
    <filter-class>com.opensymphony.module.sitemesh.filter.PageFilter</filter-class>
  </filter>
  <filter-mapping>
    <filter-name>struts2</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>
  <filter-mapping>
    <filter-name>sitemesh</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>
</web-app>

decorators.xml

<?xml version="1.0" encoding="ISO-8859-1"?>

<decorators defaultdir="/WEB-INF/decorators">
    <!-- Any urls that are excluded will never be decorated by Sitemesh -->

    <decorator name="main" page="main.jsp">
        <pattern>/*</pattern>
    </decorator>

</decorators>

Action:

public class FechamentoAction extends ActionSupport {

	/** Serial UID */
	private static final long serialVersionUID = 1L;

	@Action(value = "showConfigList", 
			results = { 
				@Result(name = "success", 
						location = "/WEB-INF/jsp/configuracaoFechamento.jsp")})
	public String showConfigList() {
		return "success";
	}
}

Estrutura de Pastas do WEB-INF para baixo:

WEB-INF
     decorators
           main.jsp
     decorators.xml
     jsp
           configuracaoFechamento.jsp
           fechamentoInex.jsp
     jspfs
           head.jspf
           tagLibs.jspf
     lib
          -- todas as bibliotecas que eu utilizo.

Qualquer idéia já ajuda. Acho que deve ser simples, mas eu não estou conseguindo resolver o problema.

Pessoal,

Alguém consegue me ajudar com o problema que eu coloquei acima?

Não sei se é alguma configuração no eclipse tb. Qualquer ajuda já vale.

Abs
bfilardi

Estou começando a trabalhar com o sitemesh em um projeto que Utilizo o VRaptor.

Acontece duas situações:
1 - Quando coloco a declaração do filtro do sitemesh no web.xml antes do do VRaptor funciona, depois não funciona.
2 - Não consigo dar um exclude na página de login.
web.xml

 <?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
  <display-name>tetrawebtrack</display-name>


	<filter>
		<filter-name>sitemesh</filter-name>
		<filter-class>com.opensymphony.sitemesh.webapp.SiteMeshFilter</filter-class>
	</filter>

	<filter-mapping>
		<filter-name>sitemesh</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>

	<welcome-file-list>
		<welcome-file>index.jsp</welcome-file>
	</welcome-file-list>

  <jsp-config>
    <jsp-property-group>
        <url-pattern>*.jsp</url-pattern>
        <page-encoding>ISO-8859-1</page-encoding>
        <include-prelude>/WEB-INF/jsp/prelude.jspf</include-prelude>
    </jsp-property-group>
</jsp-config>

  <context-param>
    <param-name>br.com.caelum.vraptor.packages</param-name>
    <param-value>br.com.caelum.vraptor.util.jpa</param-value>
  </context-param>
  <filter>
    <filter-name>vraptor</filter-name>
    <filter-class>br.com.caelum.vraptor.VRaptor</filter-class>
  </filter>
  <filter-mapping>
    <filter-name>vraptor</filter-name>
    <url-pattern>/*</url-pattern>
    <dispatcher>FORWARD</dispatcher>
    <dispatcher>REQUEST</dispatcher>
  </filter-mapping>

</web-app>

decotators.xml

<?xml version="1.0" encoding="UTF-8"?>
<decorators defaultdir="/decorators">

	<excludes>
		<pattern>/sobre.jsp</pattern>
		<pattern>/*?exclude*</pattern>
		<pattern>/login</pattern>
	</excludes>

	<decorator name="index" page="index.jsp">
		<pattern>/*</pattern>
	</decorator>
</decorators>