model-view-controller之在高层次上,struts2 是如何工作的我来自mvc背景

shangdawei 阅读:62 2025-05-04 20:05:19 评论:0

在高层次上,struts2 是如何工作的?我来自 mvc 背景

查看示例项目,我看到分配了这些 ___action 类型类。

它只是一个对 Controller Action 的 Action 引用吗?即基于 get/post 对特定 url 的响应?

请您参考如下方法:

典型的 Struts2 工作流程(请记住,Struts2 是高度可配置的,它的各个部分很好地解耦)

struts.xml => 定义“映射”:

  • 为每个 URL 执行哪个 action
  • 一个或多个结果:哪个资源(通常是 JSP)为操作返回的每个结果生成 View

因此,例如,假设一个struts.xml包含

   <action name="add" class="example.SumAction"> 
     <result name="error">/Error.jsp</result> 
     <result name="success">/SumResult.jsp</result> 
   </action> 

您的 Java 操作是:

   public class SumAction {  
       private int x; 
       private int x; 
       private int z; 
       // getters and setters ommited 
       public String execute() { 
           z = x + y;  
           return "success"; 
       } 
   } 

然后请求http://mysite.com/mywebapp/add.action?x=10&y=20会让Struts2实例化一个SumAction对象,设置xy 属性并调用 execute 方法。如果返回“成功”,那么它将把 Action 放在某个“范围”中,转发到“/SumResult.jsp”,其中通常使用一些 struts2 标记来显示结果,将其从 Action 对象中拉出。

 Result: <b><s:property value="z" /></b> 

当然,在不太平凡的场景中,execute() 方法会调用服务层。

所以,action是controller还是controller+model不是很清楚,我会说后者,因为它不仅有处理请求的逻辑,而且还充当数据(输入和结果)的容器).但仅限于请求范围内。


标签:Struts2
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

关注我们

一个IT知识分享的公众号