2009-08-11 77 views
0

我想配置sitemesh只对我的Struts 2应用程序中的某些动作映射子集起作用。为Struts 2中的特定操作映射配置SiteMesh?

比方说,我有以下的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

你在WEB-INF文件夹询问decorators.xml <装饰DEFAULTDIR = “/装修”> <装饰NAME = “空”> /窗口小部件/ hello.action <装饰名称= “主” 页= “main.vm”> /* user435657 2013-01-21 09:30:02

回答

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> 
+0

谢谢,先试试这个。 – feicipet 2009-08-12 15:47:36