2013-05-21 2 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, одно действие имеет только один способ, который может возвращаться в одну сторону.

+0

['Action # execute()'] (http://struts.apache.org/release/2.0.x/struts2-core/apidocs/) возвращает строку, в зависимости от того, какую строку вы хотите. Это выбранная вами структура, которая использует один метод. Если вам нужен другой API, используйте другую структуру (Spring, Tapestry, GWT). –

+0

В Struts2 действие - это контроллер, у которого может быть столько действий, сколько хотите, то же самое для результатов за действие. Поэтому он умножает возможность действия для возврата одного результата. Как они выполняются, зависит от сопоставления URL-адресов методам действия. Если не сопоставлен метод, а сопоставлен класс, тогда выполняйте метод, используемый по умолчанию. –

+0

Просто прочитайте о конфигурации действий: http://struts.apache.org/development/2.x/docs/action-configuration.html. –

ответ

0

В вашем примере есть только один Index, так же как есть только один execute в действии S2.

Действия могут, однако, иметь произвольное количество методов. Эти методы могут быть вызваны несколькими способами, включая конфигурацию через аннотации, XML или с использованием Convention plugin или REST plugins.

В вашем примере вы не показываете один метод, возвращающий несколько способов, вы показываете несколько действий, возвращающих несколько способов, которые поддерживаются в Struts 2 аналогичным образом.

+0

Фактически я фигурирую немного. вы имеете в виду один метод в C# public ActionResult Contact(), соответствующий одному классу Action в Struts2.0, поэтому в этом контроллере C# на самом деле нужно 3 класса Action в Struts2.0? есть ли какие-либо возможности, мы делаем меньше классов, чтобы видеть более простые – user2339970

+0

@ user2339970 Нет, это не то, что я имел в виду. Я имел в виду более или менее то, что я сказал: у вас может быть столько методов в действии, сколько захотите. Как они называются/объявляются, зависит. –

+0

Я желаю, чтобы «Action Class» был определен в документации struts, потому что в основанной на действии основе _everything_, ну, каждый запрос является действием. У этого может быть определенный пользователем класс действия, он может не ... слово «действие» иногда звучит как smurf, мы получаем то, что имеется в виду, но когда люди учатся, это не так понятно. Прочитайте комментарий Coman C на примере этого! – Quaternion

Смежные вопросы