Struts2_01

Struts2简介:
Struts2一般作用于web层(表现层).
Struts2是一个mvc框架,核心:
    1、拦截器 interceptor
    2、Action
    3、ognl与valueStack

Struts2的使用:
    1、到入相关jar包
        apps/struts-blank 中的13个jar包
    2、在web.xml配置Filter
        <filter>
            <filter-name>struts2Fileter</filter-name>
            <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
        </filter>
        <filter-mapping>
            <filter-name>struts2Fileter</filter-name>
            <url-pattern>/*</url-pattern>
        </filter-mapping>
    3、struts.xml的配置
    4、创建Action完成业务逻辑

Struts2的源代码:
    1、核心部分:org.apache.struts2..
        src/scor/src/main/java
    2、xwork核心部分:
        src/xwork-core/src/main/java/com/opensymphony/xwork2
    3、struts插件的源代码:
        src/plugins

struts.xml配置文件的提示配置:
        eclipse-->window-->preferences-->xml catalog-->add
        localtion:struts-2.3.24/core/src/mian/resources/struts-2.3.dtd
        key:http://struts.apache.org/dtds/struts-2.3.dtd
 
struts2的配置文件加载顺序:
    1、default.properties *** [init_DefaultProperties()]
        位置:struts2-core.jar包
        作用:声明struts2框架中的常量
    2、加载一批配置文件 [init_TraditionalXmlConfigurations()]
        struts-default.xml ***
        位置:struts-corl.jar
        作用:声明interceptor  result  bean
        struts-plugin.xml ***
        位置:插件包
        作用:用于插件的配置声明
        struts.xml ***
        位置:工程中
        作用:用于工程使用框架的配置
    3、加载自定义的struts.properties [init_LegacyStrutsProperties()]
        位置:工程中
        作用:定制常量
    4、自定义配置 [init_CustomConfigurationProviders()]
    5、加载web.xml *** [init_FilterInitParameters()]
        作用:加载struts2在web.xml中的相关配置
    6、bean的相关配置 [init_AliasStandardObjects()]

struts2文件的配置:
    package:
        1、name:
            包的名称,唯一
        2、namespace:
            与action标签的name属性联合作为该action的访问路径
        3、extends:
            指定继承的包,一般为struts-default,该包是在struts-default.xml中声明的
        4、abstruct:
            该包为抽象,用于被继承
    action:
        1、name
            同上
        2、class
            当前action的全路径
        3、method
            当前action中执行的方法
    result:
        1、name:
            匹配action中的method返回值来确定跳转路径
        2、type:
            跳转方式
                dispather: 默认,请求转发,针对jsp
                redirect: 重定向,针对jsp
                chain: 类似请求转发,针对action
                redirectAction: 类似重定向,针对action
        可在package下直接配置该包的全局result
            <global-result>
                <result name="" type=""></result>
            </global-result>
        常量:
            1、可在src下创建struts.properties配置文件
            2、可在web.xml配置
            3、在struts.xml配置
                <constant name="" value=""></constant>
        其他:
            <defaule-class-ref class="com.opensymphony.xwork2.ActionSuport"/>
            当请求来时,如果找不到指定的class及对应的method就会执行ActionSupport中的execte方法
            该方法默认返回值是"success"

Action类的创建:
    1、创建一个pojo类【***】
        优点:无耦合
        缺点:所有功能都有自己完成
    2、创建一个类实现Action接口
        优点:耦合度低
        缺点:所有功能都有自己完成
    3、创建一个类继承ActionSupport类,该类也实现了Action接口【***】
        有点:具有丰富的功能
        缺点:耦合度高

Action的访问方式:
    1、之间通过<action>标签来配置,访问指定的method方法
    2、通过通配符*访问

Struts框架封装数据:【***】
    1、属性驱动:
        a、直接在action中提供与请求参数匹配属性,提供get/set方法
        b、创建一个javaBean,提供get/set方法,action提供javaBena属性,提供get/set方法,请求页面要改成javaBean.parameter
    2、模型驱动:
        让action类实现ModelDriven接口
        实例模型对象
        重新getModel方法,放返回实例化的模型

相同属性名称属性驱动与模型驱动同时使用,属性驱动会失效。

Struts请求访问的执行流程:
    1、接收请求
    2、被StrutsPrepareAndExecuteFilter拦截 *****前端控制器(核心控制器)
    3、调用struts2框架默认的拦截器(interceptor)完成部分功能
    4、执行action操作
    5、根据action中方法的执行结果来选择跳转的result视图
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值