首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

struts小结

2012-09-16 
struts总结一.定义:封装了mvc框架,是mvc框架的经典实现之一.二.为什么要是用struts?Struts对于其他框架来

struts总结
一.定义:封装了mvc框架,是mvc框架的经典实现之一.
二.为什么要是用struts?
    Struts对于其他框架来说比较稳定,还有以下优点:
    1.封装了MVC开发模式
    2.提供丰富的标签库
    3.提供页面导航
    4.提供异常处理机制
    5.提供数据库连接池的管理
    6.支持国际化
三.struts三大应用组件、六大核心类以及七大核心组件:
    1.控制层组件 (ActionServlet:struts的核心控制器,拦截用户请求)
    2.模型层组件 (
         ActionForm:填充form,
         ActionMapping:用于存储配置文件中的映射信息,进行派发请求,
         Action:处理业务逻辑,
         ActionForward:页面转发,
         ActionError:处理错误信息)
    3.视图层组件 (标签库)
四.struts标签库:
    1.logic 标签:逻辑判断,迭代循环等
    2.bean 标签:用于创建JavaBean实例,或引用JavaBean实例
    3.html 标签:用于封装Form表单组件等.
    4.template 标签: 模板标签,用户tiles布局框架.
    5.nested 标签: 嵌套标签
    6.自定义标签
五.struts执行流程:
    1.初始化内部资源文件、加载struts-config.xml等其他配置文件以及初始化ActionServlet
    2.页面发送请求
    3.根据struts-config.xml配置的form-bean填充Form
    4.ActionServlet根据struts-config.xml配置的ActionMapping调用相对应的Action,并执行execute()方法.
    5.在execute方法中进行业务处理.
    6.ActionForward根据struts-config.xml 配置的跳转页面进行页面跳转,返回响应.
    7.jsp页面使用struts标签库对返回的响应进行处理.

六.ActionError与ActionMessage的区别:
    1.语义的区别:ActionError指的是错误,ActionMesage指的是消息.
    2.版本的区别:ActionError是1.1出来的,ActionMessage是1.2出现的.1.2版本后以不推荐使用ActionError.
    3.继承关系: ActionError是继承ActionMessage的.
    4.页面输出区别:ActionError用<bean:error>进行输出,ActionMessage用<bean:message>进行输出.
七.全局转发与局部转发:
    globle-forword配置是全局跳转,全局跳转作用于action.
    action-mapping内的forward配置就是局部转发,只作用于当前action
    如果局部转发与全局转发相同时,优秀选择局部转发。
八.全局异常与局部异常
    global-exceptions配置是全局异常,全局异常作用于所有的action
    action-mapping内的exception配置就是局部异常,只作用于当前action
    如果局部异常与全局全局相同时,优秀选择局部异常。
九.Action与DespatchAction:
    继承Action的类必须需要重写execute()方法.
    继承DespatchAction的类,可以不重写execute(),需要调用的方法直接配置在配置文件中.
    DespatchAction比Action要灵活,且减少了大量的重复代码.
十.动态Form:
    动态Form是struts1.1提出的一项新技术,它可以不通过编程的方式,而只要根据struts-config配置文件配置动态form就可以生成FormBean实例.动态form主要用于映射页面数据。
    优点:
    提高应用程序的开发效率与应用程序的可维护性.
    普通form与动态form:
         ActionFrom:不用验证框架作验证,如果需要验证就重写validate()方法.
         validatorForm:使用验证框架时必须继承它,但只能做同一种验证。即只提交一个按键时的验证。
         validatorActionForm:使用验证框架验证时,可以更为精确的去处理业务逻辑,针对的是不同的按键的path(即可以作不同的验证,如,既可以验证是否为空,又可以同时验证是否小于几位)
        
         DynaActionFrom:不用验证框架作验证,如果需要验证,就写一个form类继承它,重写validate方法,struts-config.xml配置时改为你写的类.
         DynaValidatorForm:与validatorForm类同
DynaValidatorActionForm:与validatorActionForm类同

         如果要使用struts的验证框架,那么我们自己的form 必须继承validatorForm 或validatorActionForm 或DynavalidatorForm 或DynavalidatorActionForm
         对于validatorForm 和DynavalidatorForm 是针对form的验证
         对于 validatorActionForm 和DynavalidatorActionForm 是针对path的验证
十一.使用验证框架的好处:
    1.更容易维护.
    2.标准化.
    3.减少重复代码的数量.
    4.客户端验证与服务端验证自动切换.
    缺点:增加程序的复杂性.
十二.struts布局框架: tiles框架
    tiles框架是struts的一个页面布局插件,将多个页面组合组合成一个页面,形成一个模板。它提高了代码可重用性,可扩展性和可维护性但同时也增加了开发难度.
    使用tiles框架的好处:
        1.可定义重用tiles组件
2.动态装载页面
3.支持国际化
4.能创建可重用模块
十三.struts缺点:
    1.struts1的配置与结构过于复杂
    2.Action是单例模式,必须设置成线程安全的
    3.ActionServlet依赖于web容器,暴露了servlet API,测试不方便

热点排行