Spring+Struts2

 Struts2+Spring整合
1.目的:用Spring管理Action,Service,Dao等组件
     1)将Struts2的Action交给Spring
          *引入spring包和配置文件
          *开启组件扫描,扫描Action(采用非单例模式创建)   
     2)请求到Filter去Spring容器获取Action对象
          *引入了struts2-spring-plugin.jar包
          *修改<action>配置的class属性,将其指定为Spring容器中Controller对象Id
          *追加web.xml中ContextLoaderListener配置,
             为struts2-spring-plugin.jar指定访问的Spring容器                    
2.StrutsObjectFactory:利用反射创建Action对象
    引入struts2-spring-plugin.jar后,将Struts2底层的ObjectFactory改成了StrutsSpringObjectFactory,                                  
     StrutsSpringObjectFactory去访问Spring容器获取Action对象                 
3.Result组件应用
    1)常用类型:dispatcher,redirect,redirectAction,stream,json等
    2)使用方法:<result type="指定类型">定义参数</result>
    3)调用JSP响应
         *dispatcher转发
            <result name="success" type="dispatcher">/list.jsp</result> 
         *redirect重定向
            <result name="success" type="redirect">/list.jsp</result> 
    4)调用Action响应
         请求-->Action1-->result-->Action2...   
         *chain转发
            <result name="success" type="chain">
<param name="actionName">请求名</param>
<param name="namespace">请求前缀</param>
</result>
         *redirectAction重定向 
           <result name="success" type="redirectAction">
<param name="actionName">请求名</param>
<param name="namespace">请求前缀/param>
</result> 
    5)stream流响应
        可以将服务器信息以字节流方式响应
         <result type="stream">
          <param name="inputName">Action中属性名</param>
         </result>
         Action中属性类型,必须是符合InputStream
    6)json响应(在struts2-json-plugin.jar)
        作用:将Action属性值转成json字符串输出
         *<result type="json">
                 <param name="root">属性名</param>
           </result>
         *<result type="json">
                <param name="includeProperties">属性名1,属性名2,属性名3...</param>
           </result> 
4.拦截器组件应用
     请求-->StrutsPrepareAndExecuteFilter
      拦截点1-->Action-->Service-->Dao
      -->Result-->拦截点2
      -->JSP-->响应输出
     拦截器使用
       *编写拦截器组件
         实现Interceptor接口及方法
       *配置拦截器组件
          定义格式:<interceptor name="名字" class="">
          使用格式:<interceptor-ref name="名字"/>
5.Struts2总结
    1)主要组件及工作流程
        Filter控制器-->拦截器-->Action-->Result-->拦截器-->ValueStack
    2)Action组件使用
        *属性作用
        *方法规则
        *request,session使用方法
    3)Result组件使用                    
        *了解Result组件类型
           熟悉dispatcher,Redirect,RedirectAction,json使用
        *拦截器
           a.拦截器使用方法
           b.了解框架内置拦截器
                默认执行defaultStack拦截器,如果为<action>制定了拦截器,defaultStack不再执行,
                会破坏原有Struts2流程功能,必须显示调用
    4)ValueStack  被称为值栈  有两个属性root属性(栈结构),context属性(Map类型)
        *作用:存储请求处理期间相关的一些数据对象
                     例如action,session,application,request,parameters等
                     请求处理期间需要使用这些对象,Filter控制器去ValueStack中查找获取对象信息
        *如何访问
           采用ognl工具队其数据进行访问
            a.获取valuestack中对象属性值
            b.设置valuestack中对象属性值
            c.调用valuesstack中对象方法  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值