Struts 控制流

下图以UML时序图的方式展示了Struts 请求-响应流程

我们来按这个请求-响应流程走一边

n 客户请求匹配Action URI样式的路径 

n 容器将请求传递给ActionServlet.

n 如果这个是模块化应用,ActionServlet选择响应的模块。

n ActionServlet查询路径的映射。

n 如果映射标明了一个form bean,ActionServlet看是否已经有一个实例,或者创建一个新的实例。如果已经有一个form bean,ActionServlet重设它(reset),并根据HTTP请求重新组装它。

n 如果mapping的validate属性设置为true,它将调用form bean的validate方法,如果验证失败,Servlet将控制转发到input属性标明的路径,控制流终止。

n 如果mapping标明一个Action类型,如果它已经存在或已经实例化,它将被重用。 

n 接着Action的perform或execute方法被ActionServlet调用,并传递一个实例化的form bean或者null。

n Action可以组装form bean,调用业务对象,以及其他需要做的事情。 

n Action返回一个ActionForward给ActionServlet。

n 如果ActionForward指向另一个Action URI,重新开始;否则,显示页面或者其他资源,流程结束。通常,结果是一个JSP页面,或者Jasper,或其它类似技术 (非Struts)

n 如果JSP使用Struts HTML标记,并且在请求中看到正确的ActionForm,他们会从ActionForm中组装HTML控件。否则,<html:form>标记将创建一个。从Struts1.1开始,如果form标记自行创建一个ActionForm,它将调用ActionForm的Reset方法。如果你只是想创建一个空白的表单,你可以使用标准的ForwardAction来通过Action传递控制,然后离开页面。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值