Usando SiteMesh com forward () do RequestDispatcher

Estou tentando integrar SiteMesh em um aplicativo herdado usando o Tomcat 5 como meu contêiner. Eu tenho ummain.jsp que estou decorando com um decorador simple

Emdecorators.xml, Acabei de definir um decorador:

<decorators defaultdir="/decorators">
  <decorator name="layout-main" page="layout-main.jsp">
    <pattern>/jsp/main.jsp</pattern>
  </decorator>
</decorators>

Este decorador funciona se eu for manualmente parahttp://example.com/my-webapp/jsp/main.jsp. No entanto, existem alguns lugares em que um servlet, em vez de redirecionar para um jsp, faz umfrent:

getServletContext().getRequestDispatcher("/jsp/main.jsp").forward(request, response);

Isso significa que o URL permanece em algo comohttp://example.com/my-webapp/servlet/MyServlet em vez do arquivo jsp e, portanto, não está sendo decorado, presumo que ele não corresponda ao padrão emdecorators.xml.

Não posso fazer um<pattern>/*</pattern> porque existem outros jsps que não precisam ser decorados porlayout-main.jsp. Eu não posso fazer um<pattern>/servlet/MyServlet*</pattern> PorqueMyServlet pode encaminhar paramain.jsp às vezes e talvezerror.jsp em outros momentos.

Existe uma maneira de contornar isso sem alterações amplas na forma como os servlets funcionam? Como é um aplicativo legado, não tenho tanta liberdade para mudar as coisas, por isso espero ter algo em termos de configuração que resolva isso.

documentação do @ SiteMesh realmente não é tão boa. Eu tenho trabalhado principalmente com o aplicativo de exemplo que acompanha a distribuição. Gosto muito do SiteMesh e espero que funcione nesse caso.

questionAnswers(1)

yourAnswerToTheQuestion