2009-08-11 79 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