Struts_struts1.x_工作流程和全局转发

来源:互联网 发布:海文软件 编辑:程序博客网 时间:2024/09/21 08:59

1.工作流程

(1).前端控制器

    根据jsp页面的form表单提交,对应一个action=“/login.do”,有前端控制器统一管理,根据action属性对应的action标签

(2).找到FormBean的实例化对象

    根据找到的action标签,得到name属性(如果指定了Scope属性,则Form的实例化对象则作用于对应的域范围,只有session和request,默认为session)。根据action标签的Scope值,查找域对象中是否存在FormBean的实例化对象,有直接使用;没有则创建FormBan的实例化对象,并setAttribute(对应的名称为action标签的attribute值,如果没有指定,默认为name属性的值)!

(3).调用FormBean对象的reset()

   Can be used to reset bean properties to their default state, as needed. This method is called before the properties are repopulated by the controller.

(4).调用FormBean的set方法

   调用FormBean的与form表单中name属性对应的set方法,如果表单有一个<input type="text" name="username">,则FormBean中应该也存在一个方法setUsername()方法,至于FormBean中是否存在username字段,这不重要,关键是表单name属性的值与FormBean方法对应即可

(5).调用FormBean的validate方法

   表单校验,The default implementation performs no validation and returnsnull. Subclasses must override this method to provide any validation they wish to perform.

(6).调用Action的execute方法

如果校验没有返回错误,则ActionForm子类对象作为参数传递给execute执行

2.全局转发

(1).现象分析

如果AAction 有一个转发, BAction也有一个与AAction一样的转发<forwards>标签,则可以使用全局转发

(2).代码实现

<global-forwards><forward name="success" path="/success.jsp"></forward></global-forwards>
原创粉丝点击