2013-05-21 38 views
-1

在asp.net中,一個控制器可以有很多方法返回ActionResult。一個動作可以有兩種方法?

public class HomeController : Controller 
{ 
    public ActionResult Index() 
    { 
     ViewBag.Message = "Modify this template to jump-start your ASP.NET MVC application."; 

     return View(); 
    } 

    public ActionResult About() 
    { 
     ViewBag.Message = "Your app description page."; 

     return View(); 
    } 

    public ActionResult Contact() 
    { 
     ViewBag.Message = "Your contact page."; 

     return View(); 
    } 
} 

如何在Java中做到這一點Struts2中,一個Action只有一個能夠返回單向的執行。

+0

['Action#execute()'](http://struts.apache.org/release/2.0.x/struts2-core/apidocs/)返回一個字符串,無論你想要什麼字符串。這是您選擇的框架,它使用單一方法。如果你想要一個不同的API,使用不同的框架(Spring,Tapestry,GWT)。 –

+0

在Struts2中,Action是一個控制器,它可以擁有儘可能多的動作,每個動作的結果也是一樣。因此它增加了返回單個結果的可能性。它們如何執行取決於將URL映射到Action的方法。如果沒有映射方法,但映射類然後執行默認使用的方法。 –

+0

請閱讀有關操作配置的信息:http://struts.apache.org/development/2.x/docs/action-configuration.html。 –

回答

0

在您的示例中,只有一個Index,就像S2操作中只有一個execute一樣。

但是,操作可能有任意數量的方法。這些方法可以通過多種方式調用,包括通過註釋,XML進行配置,或者使用Convention pluginREST plugins

在您的示例中,您並未顯示一種返回多種方式的方法,您將顯示多種返回多種方式的操作,這在Struts 2中以類似方式支持。

+0

其實我覺得有點出。你的意思是在c#中的一個方法public ActionResult Contact()對應於Struts2.0中的一個Action類,所以在這個c#控制器中,Struts2.0中實際需要3個Action類嗎?有沒有可能我們減少班級看簡化 – user2339970

+0

@ user2339970不,這不是我的意思。我的意思或多或少是我所說的:你可以在行動中擁有儘可能多的方法。他們如何被稱爲/聲明取決於。 –

+0

我希望「Action Class」在struts文檔中定義,因爲在基於動作的框架_everything_中,每個請求都是一個動作。它可能有一個用戶定義的動作類,它可能不會......「動作」這個詞有時候聽起來像是smurf,我們知道什麼意思,但是當人們知道時,它並不那麼清楚。閱讀Coman C的評論爲這個例子! – Quaternion

相關問題