我正在尝试将sitemesh配置为仅对我的Struts 2应用程序中的某个动作映射子集生效。
比如说,我有以下struts.xml片段:
<package name="default" namespace="/" extends="struts-default">
<action name="showForm">
<result>/view/form.jsp</result>
</action>
</package>
<package name="widgets" namespace="/widgets" extends="struts-default">
<action name="showForm">
<result>/view/form.jsp</result>
</action>
</package>
我希望“/showForm.action”的输出由SiteMesh修饰,但是“/widgets/showForm.action”将返回为空。这里的关键部分是我希望JSP文件可以被两个动作映射重用。
但是尽可能地尝试,我似乎无法获得SiteMesh的标签来识别映射。我必须指定要排除的文件“/view/form.jsp”,这意味着我将无法重用JSP文件。
有什么方法可以解决这个问题吗?
我正在使用Struts 2.0.14。
谢谢, 黄
答案 0 :(得分:1)
与Using SiteMesh with RequestDispatcher's forward()相同的答案。您可以更改sitemesh过滤器映射到传入请求的方式。
我想你想要:
<filter-mapping>
<filter-name>sitemesh</filter-name>
<servlet-name>MyServlet</servlet-name>
<dispatcher>REQUEST</dispatcher>
</filter-mapping>