美文网首页
二、struts2 入门

二、struts2 入门

作者: cqzhangjian | 来源:发表于2017-12-28 08:29 被阅读0次

    1.struts.xml 配置文件详解

        <!-- package 标签:包的概念,在该标签中可以定义多个Action 动作类
                    name 属性 :可以随便定义,但是有点意义。如果一个 struts.xml 文件中有多个 package 标签 ,name 属性对应的值不能重复
                    extends 属性 : 一般继承 struts-default,因为该包定义了struts2 大量的配置,比如拦截器(使得请求进行预处理)
                    namespace 属性 :定义 url 地址的一部分,它是以 / 开头
                    
            action 标签 :关联自定义的 动作类的
                class 属性:设置 动作类的全路径
                name 属性 :定义 url 地址的一部分,它不能以 / 开头,必须配置指
                method 属性 : 外部通过 aciton 中的name值来作请求,指定对应的方法来处理该请求,如果不配置该属性,就会默认找 execute方法执行
                
            result 标签 : 逻辑视图 物理视图关联,并且引导视图进行跳转,默认引导方式是转发
                 type 属性: dispatcher 转发 针对视图的转发
                          redirect 重定向,针对的 视图的重定向
                          
                          redirectAction 重定向,针对的是动作重定向
                          chain 转发:针对动作类的转发
                        
                 name 属性:关联逻辑视图
            constant 标签,配置 struts2 相关的信息 常量配置 key/value
                    kye:struts.action.extension 表示配置动作类的后缀名,如果不配,默认就是 .action 或者 不写
                    kye:struts.devMode 表示开启开发者模式,提供更友好更详细的信息,也自动开启了国际化资源加载功能以及自动加载struts.xml文件的功能
         -->
    

    2.拦截器

    拦截器一般是 web 框架中的概念,不是 Sun 定义的 概念。
    拦截器(Interceptor)的作用跟 sun定义的 Filter 作用差不多

    • Filter : Sun 规范的一套接口,请求的预处理机制

    • Interceptor :表现层框架(Struts1,Struts2,springmvc ) 规范的一种技术(拦截器)

    • Filter :可以拦截各种类型的请求:.html .css .js .jsp servlet请求 、 动作请求等

    • Interceptor:只能拦截处理动作类请求

    Struts2 默认使用的拦截器:

         <interceptor-stack name="defaultStack">
                    <interceptor-ref name="exception"/>
                    <interceptor-ref name="alias"/>
                    <interceptor-ref name="servletConfig"/>
                    <interceptor-ref name="i18n"/>
                    <interceptor-ref name="prepare"/>
                    <interceptor-ref name="chain"/>
                    <interceptor-ref name="scopedModelDriven"/>
                    <interceptor-ref name="modelDriven"/>
                    <interceptor-ref name="fileUpload"/>
                    <interceptor-ref name="checkbox"/>
                    <interceptor-ref name="datetime"/>
                    <interceptor-ref name="multiselect"/>
                    <interceptor-ref name="staticParams"/>
                    <interceptor-ref name="actionMappingParams"/>
                    <interceptor-ref name="params"/>
                    <interceptor-ref name="conversionError"/>
                    <interceptor-ref name="validation">
                        <param name="excludeMethods">input,back,cancel,browse</param>
                    </interceptor-ref>
                    <interceptor-ref name="workflow">
                        <param name="excludeMethods">input,back,cancel,browse</param>
                    </interceptor-ref>
    
    
    • 自定义拦截器步骤
      • 自定义拦截器: struts2 框架提供了 定义拦截器的接口。Interceptor 接口、继承 AbstractInterceptor抽象类
    public class MyInter extends AbstractInterceptor {
    
    • 申明自定义的拦截器
        <interceptors>
                <!-- 申明自定义的拦截器 -->
                <interceptor name="my1" class="com.xingxue.struts2.web.interceptor.MyInter"></interceptor>
            </interceptors>
    
    • 配置拦截器拦截具体的动作类
        <!-- 全局配置拦截所有动作类:struts2中的默认的拦截器就失效-->
            <default-interceptor-ref name="my1"></default-interceptor-ref>
    

    注意:应该这样配置

        <interceptors>
                <!-- 申明自定义的拦截器 -->
                <interceptor name="my1" class="com.xingxue.struts2.web.interceptor.MyInter"></interceptor>
                <!-- 申明一个拦截器栈:一个容器,可以配置都个拦截器 -->
                <interceptor-stack name="myStack">
                    <interceptor-ref name="defaultStack"></interceptor-ref>
                    <interceptor-ref name="my1"></interceptor-ref>
                </interceptor-stack>
            </interceptors>
            
            <!-- 全局配置拦截所有动作类-->
            <default-interceptor-ref name="myStack"></default-interceptor-ref>
    

    3.上传下载 详看代码

    相关文章

      网友评论

          本文标题:二、struts2 入门

          本文链接:https://www.haomeiwen.com/subject/kdkmgxtx.html