Decorators não funciona na action RESOLVIDO

2 respostas
S

Estou estudando Struts2 e estou tendo problemas com o Decorators se eu colocar o link direto pra jsp ex: setorcreator.jsp
a página aparece com Decoratos blz. mas se eu fizer um formulário que me leva pra action "Setor" que tem como mesmo retorno a página setorcreator.jsp ela não aparece com o Decoretor

decorators.xml
<?xml version="1.0" encoding="ISO-8859-1" ?> 
<decorators defaultdir="/decorators">
    
    <decorator name="site" page="site.jsp">
        <pattern>/*</pattern> 
    </decorator>
sitemesh.xml
<sitemesh>
    <property name="decorators-file" value="/WEB-INF/decorators.xml" />
    <excludes file="${decorators-file}" />

    <page-parsers>
        <parser content-type="text/html"
            class="com.opensymphony.module.sitemesh.parser.HTMLPageParser" />
        <parser content-type="text/html;charset=ISO-8859-1"
            class="com.opensymphony.module.sitemesh.parser.HTMLPageParser" />
    </page-parsers>

    <decorator-mappers>
        <mapper class="com.opensymphony.module.sitemesh.mapper.ConfigDecoratorMapper">
            <param name="config" value="${decorators-file}" />
        </mapper>
    </decorator-mappers>
</sitemesh>
[/code] web.xml
<filter>
        <filter-name>sitemesh</filter-name>
        <filter-class>com.opensymphony.module.sitemesh.filter.PageFilter</filter-class>
    </filter>
    
    <filter-mapping>
        <filter-name>sitemesh</filter-name>
        <url-pattern>/*</url-pattern>   
    </filter-mapping>
Struts.xml
action name="Servicos!*" method="{0}" class="br.java.aplicacao.actions.ServicosAction">
            <result name="success">/servicocreate.jsp</result>
            <result name="input">/servicocreate.jsp</result>
        </action>
não funicona assim:
<s:form name="frmFormulario" action="Servicos!create" method="POST" theme="simple">
funciona assim:
<a > Criar servico </a>

Alguém tem idéia do que eu fazendo de errado ou deixando de fazer?

2 Respostas

S

Já alterei o decorator.xml para

&lt;decorator name="site" page="site.jsp"&gt;   
        &lt;pattern&gt;/*.jsp&lt;/pattern&gt;   
        &lt;pattern&gt;/*.action&lt;/pattern&gt;   

    &lt;/decorator&gt;

Também não funcionou

S

O problema estáva no web.xml
o filter-mapping do sitemesh tem que vir antes do Struts2

Exemplo:

&lt;filter&gt;
        &lt;filter-name&gt;sitemesh&lt;/filter-name&gt;
        &lt;filter-class&gt;com.opensymphony.module.sitemesh.filter.PageFilter&lt;/filter-class&gt;
    &lt;/filter&gt;
    
    &lt;filter-mapping&gt;
        &lt;filter-name&gt;sitemesh&lt;/filter-name&gt;
        &lt;url-pattern&gt;/*&lt;/url-pattern&gt;        
    &lt;/filter-mapping&gt;  
    
    &lt;filter&gt;
        &lt;filter-name&gt;struts2&lt;/filter-name&gt;
        &lt;filter-class&gt;org.apache.struts2.dispatcher.FilterDispatcher&lt;/filter-class&gt;
    &lt;/filter&gt;
    
    &lt;filter-mapping&gt;
        &lt;filter-name&gt;struts2&lt;/filter-name&gt;
        &lt;url-pattern&gt;/*&lt;/url-pattern&gt;
    &lt;/filter-mapping&gt;
Criado 7 de abril de 2008
Ultima resposta 9 de abr. de 2008
Respostas 2
Participantes 1