2012-07-20 149 views
1

我是struts的新手,我在Struts中有一個基本的疑問。我是否需要爲每個請求創建一個新的Struts Action類?

我創建了一個包含10個鏈接(link1,link2,...... link10)的新網頁。當點擊每個鏈接時,它應鏈接到相應的頁面。我的問題是,我是否需要創建10個新的Struts Action類來執行重定向,還是我有任何其他方式來處理可以處理所有10個鏈接的單個Struts Action類。

+0

這取決於你如何簡化它。如果操作屬於同一個域,則執行一個操作或分割它。 – 2012-07-21 05:04:55

回答

3

它眷的是何等的所有10個鏈接會doing.There有幾個選擇這裏。

  1. 如果你所有的鏈接都做同樣的工作類型(例如與用戶有關的工作),最好用多種方法創建一個動作。

S2提供的方式來定義每個動作映射方法和基於該方法名S2會打電話給你的行動尊重方法類似

<action name="action1" class="myActionClass" method="method1"/> 
<action name="action2" class="myActionClass" method="method2"/> 

需要注意的是,只有當你有方法創建一個Action類在做任何重定向之前需要執行某種邏輯。

對於簡單的一頁到其他頁面重定向S2提供了一種非常優雅的方式,它將在運行時創建一個空的帶有execute方法的Action,並始終返回SUCCESS這是wh你需要做的

<action name="Hello"> 
    // ... 
</action> 

在上述情況下,如果在動作映射類屬性留空,則com.opensymphony.xwork2.ActionSupport類用作默認。 有關詳細信息,請參閱此頁action-configuration

+0

它給出的錯誤消息「找不到指定網址的操作配置。」 這是我的鏈接First Page 我的Struts配置文件 <的struts-config> <動作映射> <動作名稱= 「第一」> <轉發名= 「成功」 路徑=「/第一頁。 JSP「> OCJP 2012-07-20 08:08:53

+0

る起訴struts1中?? – 2012-07-20 09:20:52

1

您無需爲Struts 2中的每個URL分別執行一個操作。您可以使用單個類,只需爲每個鏈接分別創建函數。在struts.xml中

實例操作定義:

<action name="Link1" class="com.project.YourActionClass" method="handleLink1"> 
      ........ 
</action> 

<action name="Link2" class="com.project.YourActionClass" method="handleLink2"> 
      ......... 
</action> 
1

不需要爲每個鏈接創建單獨的操作類,我們只需要使用方法屬性單擊每個鏈接來配置要調用的方法名稱,一個操作類是足夠的,動作映射應該在struts.xml中配置。

這是struts2.xml中的一個優勢,在struts1中,我想我們需要使用調度動作來調用特定的方法。

相關問題