2013-02-21 46 views
3

我是新的java struts框架。但我想問一個問題。什麼是java struts.xml中的差異路徑類型?

struts.xml路徑是.do"/AddReq.do"或路徑是唯一的名字像"AddReq"

是什麼"/AddReq.do""AddReq"之間的區別?

例如

<action path="/AddReqPage" 
type="...actions.AddReqPageAction"> 
     <forward name="success" path="AddReq" /> 
     <forward name="failure" path="/bos.jsp" /> 
</action> 
<action path="/AddReq" 
type="...actions.AddReqAction" 
name="AddReqForm" validate="true" 
scope="request"> 
     <forward name="success" path="/AddReqDetail.do" /> 
     <forward name="hata" path="AddReq" /> 
     <forward name="failure" path="/bos.jsp" /> 
</action> 

回答

4

沒有太大的區別。兩者都應該工作 - 只要您在web.xml中正確映射到struts ActionServlet。

<servlet-mapping> 
    <servlet-name>action</servlet-name> 
    <url-pattern>*.do</url-pattern> 
</servlet-mapping> 

以往,支柱使用*。做圖案從其他Servlet和JSP

1

distingush其的servlet「做」是一個動作擴展。您可以在servlet映射中進行配置。當struts解析url時,它正在尋找這樣的擴展來區分靜態調用和struts動作。然後找到與該URL對應但沒有「.do」的映射。但是,如果您的應用程序配置爲使用該擴展名,您仍然在轉發中指定「.do」。如今,這個擴展與以前一樣意義不大。 URL rewrite技術帶來完全忽略該擴展。用

<servlet-mapping> 
    <servlet-name>action</servlet-name> 
    <url-pattern>/c/*</url-pattern> 
</servlet-mapping> 

和上面的引用你可以完全解僱它。