model-view-controller之在高层次上,struts2 是如何工作的我来自mvc背景
在高层次上,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对象,设置x 和 y 属性并调用 execute 方法。如果返回“成功”,那么它将把 Action 放在某个“范围”中,转发到“/SumResult.jsp”,其中通常使用一些 struts2 标记来显示结果,将其从 Action 对象中拉出。
Result: <b><s:property value="z" /></b>
当然,在不太平凡的场景中,execute() 方法会调用服务层。
所以,action是controller还是controller+model不是很清楚,我会说后者,因为它不仅有处理请求的逻辑,而且还充当数据(输入和结果)的容器).但仅限于请求范围内。
1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。



