2011-12-13 78 views
0

在我的基於struts2的應用程序中,我需要包含工作模板(一個jsp文件)。我設計了佈局並且具備了一​​切。只有應用程序的一部分會在整個應用程序中改變工作區域。在Struts2中包含動態jsp的最佳方法

在我index.jsp文件,我需要包括菜單,數據庫驅動,併爲此我需要打這來了我的腦海裏的action一種方式是像頭部分採用

<META HTTP-EQUIV="Refresh" CONTENT="0;URL=welcome.action"> 

index.jsp,但我不想在我的應用程序的第一個地方重定向。

有沒有其他辦法可以達到這個目的?

回答

0

建立在你的網頁內容的空文件名的歡迎folder.Add follwinf進入到你的web.xml

<filter> 
     <filter-name>action2</filter-name> 
     <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> 
    </filter> 
<filter-mapping> 
     <filter-name>action2</filter-name> 
     <url-pattern>/*</url-pattern> 
     <dispatcher>REQUEST</dispatcher>  
     <dispatcher>FORWARD</dispatcher> 
     <dispatcher>INCLUDE</dispatcher> 
     <dispatcher>ERROR</dispatcher> 
    </filter-mapping> 

取代在web.xml中的歡迎列表文件

<welcome-file-list> 
     <welcome-file>welcome</welcome-file> 
</welcome-file-list> 

和最後在你的strus.xml中做一些類似的事情

<action name="welcome" class="welcome.action"> 
     <result>/index.jsp</result> 
    </action> 

我們試圖做的是,當我們打到example.com而不是顯示歡迎的jsp文件,我們正在執行操作並使用其結果。在這種情況下,您的網址將保持不變,如www.mysite.com

1

這是一種正常的方法;沒有錯。

另一種方法是將操作定義爲歡迎頁面,但您需要根據this SO answer在過濾器上定義調度程序元素。

+0

與重定向不同,因爲在所有情況下URL都是www.mysite。 COM /歡迎,但我希望它是簡單的,如www.mysite.com –

+0

@ user577691然後使用第二種機制。您也可以嘗試使用JSTL include。 –

+0

可能是我理解錯誤的方式,但如果我會去第二個選項的調度員仍然在我的歡迎文件列表中我必須定義動作的URL,所以我相信動作的URL會像www.mysite.com/歡迎「歡迎」將成爲行動的名稱。 –