java

位置:IT落伍者 >> java >> 浏览文章

Struts开发工作流程


发布日期:2021年03月07日
 
Struts开发工作流程

最近讲了struts 写点理解所有的请求都提交给ActionServlet来处理要运行struts就是在程序启动时先要加载ActionServlet类而加载这个类是依靠对webxml的解析ActionServlet要启动可以通过两种条件

ActionServlet的加载优先级—— 在webxml中有这样一句话<loadonstartup></loadonstartup> 其中代表着一起动就加载!

当用户请求时加载ActionServlet也就是说启动优先级不是最高的我试过第一次运行会报错误但后面就正常了 所以这种是不可取的也告诉大家以后遇到加载struts出问题时不妨先看看它的加载优先级

ActionServlet是一个FrontController它是一个标准的Servlet它将request转发给RequestProcessor来处理

ActionMapping是ActionConfig的子类实质上是对strutsconfigxml的一个映射从中可以取得所有的配置信息

RequestProcessor根据提交过来的url如*do从ActionMapping 中得到相应的ActionForn和Action然后将request的参数对应到ActionForm中进行form验证如果验证通过则调用Action的execute()方法来执行Action最终返回ActionFoward

ActionFoward是对mapping中一个foward的包装对应于一个url

ActionForm使用了ViewHelper模式是对HTML中form的一个封装其中包含有validate方法用于验证form数据的有效性ActionForm是一个符合JavaBean规范的类所有的属性都应满足get和set对应对于一些复杂的系统还可以采用DynaActionForm来构造动态的Form即通过预制参数来生成Form这样可以更灵活的扩展程序

ActionErrors是对错误信息的包装一旦在执行action或者formvalidate中出现异常即可产生一个ActionError并最终加入到ActionErrors在Form验证的过程中如果有Error发生则会将页面重新导向至输入页并提示错误

Action是用于执行业务逻辑的RequsestHandler每个Action都只建立一个instanceAction不是线程安全的所以不应该在Action中访问特定资源一般来说应改使用 Business Delegate 模式来对Business tier进行访问以解除耦合

Struts提供了多种Action供选择使用普通的Action只能通过调用execute执行一项任务而DispatchAction可以根据配置参数执行而不是仅进入execute()函数这样可以执行多种任务如insertupdate等LookupDispatchAction可以根据提交表单按钮的名称来执行函数

上一篇:Struts2的类型转换[3]

下一篇:使用ant编译打包应用程序[2]