0

我正在尝试将 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。

谢谢,黄

4

1 回答 1

1

与将 SiteMesh 与 RequestDispatcher 的 forward() 一起使用的答案相同。您可以更改 sitemesh 过滤器映射到传入请求的方式。

我想你会想要:

<filter-mapping>
    <filter-name>sitemesh</filter-name>
    <servlet-name>MyServlet</servlet-name>
    <dispatcher>REQUEST</dispatcher>
</filter-mapping>
于 2009-08-11T20:06:27.550 回答