Tomcat 5 をコンテナーとして使用して、SiteMeshをレガシー アプリケーションに統合しようとしています。main.jsp
シンプルなデコレータで飾っています。
ではdecorators.xml
、デコレータを 1 つだけ定義しました。
<decorators defaultdir="/decorators">
<decorator name="layout-main" page="layout-main.jsp">
<pattern>/jsp/main.jsp</pattern>
</decorator>
</decorators>
このデコレータは、手動で に移動すると機能しhttp://example.com/my-webapp/jsp/main.jsp
ます。ただし、サーブレットが jsp へのリダイレクトを行う代わりにforwardを行う場所がいくつかあります。
getServletContext().getRequestDispatcher("/jsp/main.jsp").forward(request, response);
これは、URL がhttp://example.com/my-webapp/servlet/MyServlet
jsp ファイルではなく のようなものにとどまり、装飾されていないことを意味しdecorators.xml
ます。
<pattern>/*</pattern>
で装飾する必要のない他のjspがあるため、できませんlayout-main.jsp
。場合によっては転送される可能性がある<pattern>/servlet/MyServlet*</pattern>
ため、できません。MyServlet
main.jsp
error.jsp
サーブレットの動作を大幅に変更せずに、これを回避する方法はありますか? これはレガシーアプリなので、変更する自由があまりないので、これを修正する構成上の何かを望んでいます.
SiteMesh のドキュメントは、実際にはそれほど優れていません。私はディストリビューションに付属しているサンプル アプリケーションに基づいて作業を進めてきました。私は SiteMesh が本当に好きで、この場合でも動作することを望んでいます。