2012-02-20 49 views
1

例如混淆有關全球前和Action映射

<global-forwards> 
     <forward name="welcome" path="/Welcome.do"/> 
    </global-forwards> 

    <action-mappings> 
     <action path="/Welcome" forward="/welcomeStruts.jsp"/> 
    </action-mappings> 

我的問題是:當 客戶端請求Welcome.do頁面,全球前將映射/welcome.do頁面的名稱屬性「歡迎」 。然後在動作映射中,它將映射forward標記中的名稱與action標記中的路徑,以便它知道它應該轉發到welcomeStruts.jsp文件。
我對嗎?
如果不是,它如何確定用戶的請求* .do到相應的jsp文件之間的正確映射?
謝謝

回答

2

你是不正確的。當請求進入時,Struts嘗試將URL或請求映射到操作的路徑。在這個階段沒有使用前鋒。

當動作返回前向名稱時,Struts首先在動作的前向中查找具有此名稱的前進,如果找不到,則它會查找全局前向。

+0

只是1件事,我不明白請求將如何與相應的動作控制映射,我試圖找到web.xml和struts-config.xml中的映射,但我沒有看到該部分。你能解釋一下嗎?謝謝 – Xitrum 2012-02-20 10:05:30

+1

通常,web.xml會爲URL模式'* .do'映射到Struts servlet。然後,Struts servlet從請求的路徑中移除.do,並找到具有結果路徑的操作。 – 2012-02-20 10:23:12

+0

所以你的意思,這將在struts-config.xml文件的這一部分happend:<操作路徑= 「/ AddSelCommand」 \t \t NAME = 「SASSpecialistRepFormBean」 \t \t TYPE = 「actions.AddSelCommand」 \t \t範圍= 「請求」> \t \t <向前名稱= 「代表」 路徑= 「/ WEB-INF/JSP/SpecialistRepresentativeAddSelection.jsp」> \t \t \t \t – Xitrum 2012-02-20 10:25:48