1.配置文件的加载顺序

0. 需要掌握
        * 加载了哪些个配置文件(重点的)
        * 配置文件的名称是什么
        * 配置文件的位置
        * 配置文件的作用

1. Struts2框架的核心是StrutsPrepareAndExecuteFilter过滤器,该过滤器有两个功能
        * Prepare        -- 预处理,加载核心的配置文件
        * Execute        -- 执行,让部分拦截器执行
    
2. StrutsPrepareAndExecuteFilter过滤器会加载哪些配置文件呢?
        * 通过源代码可以看到具体加载的配置文件和加载配置文件的顺序
            * init_DefaultProperties();                 -- 加载org/apache/struts2/default.properties
            * init_TraditionalXmlConfigurations();        -- 加载struts-default.xml,struts-plugin.xml,struts.xml
            * init_LegacyStrutsProperties();            -- 加载自定义的struts.properties.
            * init_CustomConfigurationProviders();        -- 加载用户自定义配置提供者
            * init_FilterInitParameters() ;                -- 加载web.xml
    
3. 重点了解的配置文件
        * default.properties        -- 在org/apache/struts2/目录下,代表的是配置的是Struts2的常量的值
        * struts-default.xml        -- 在Struts2的核心包下,代表的是Struts2核心功能的配置(Bean、拦截器、结果类型等)
        * struts.xml                -- 重点中的重点配置,代表WEB应用的默认配置,在工作中,基本就配置它就可以了!!(可以配置常量)
        * web.xml                    -- 配置前端控制器(可以配置常量)
        
        * 注意:
            * 前3个配置文件是struts2框架的默认配置文件,基本不用修改。
            * 后3个配置文件可以允许自己修改struts2的常量。但是有一个特点:后加载的配置文件修改的常量的值,会覆盖掉前面修改的常量的值。
    
4. 总结(重点掌握的配置文件)
        * 先加载default.properties文件,在org/apache/struts2/default.properties文件,都是常量。
        * 又加载struts-default.xml配置文件,在核心的jar包最下方,struts2框架的核心功能都是在该配置文件中配置的。
        * 再加载struts.xml的配置文件,在src的目录下,代表用户自己配置的配置文件
        * 最后加载web.xml的配置文件
        
        * 后加载的配置文件会覆盖掉之前加载的配置文件(在这些配置文件中可以配置常量)
    
5. 注意一个问题
        * 哪些配置文件中可以配置常量?
            * default.properties        -- 默认值,咱们是不能修改的!!
            * struts.xml                -- 可以配置,开发中基本上都在该配置文件中配置常量
            * struts.properties            -- 可以配置,基本不会在该配置文件中配置
            * web.xml                    -- 可以配置,基本不会在该配置文件中配置

2.(struts.xml)配置文件的基本配置

    <!-- 包结构 -->
<package name="default" namespace="/" extends="struts-default">
<!-- 配置Action -->
<action name="helloStruts2" class="com.struts2.web.action.HelloAction" method="hello" >
<!-- 配置跳转的页面,路径的写法:在Struts2框架中,不管是转发还是重定向,都不用写项目名 -->
<result name="success">/jsp/success.jsp</result>
</action>
</package>

1.<package>标签:如果要配置<action>的标签,那么必须先要配置<package>标签,代表包的概念

包含的属性:

  name:-------------------包的名称,要求是唯一的,管理action的配置

  namespace:-------------名称空间,一般与<action>标签中的name属性共同决定访问路径

    namespace="/"------根命名空间(经常使用)

    namespace="/aaa'---带有名称的命名空间

  exetends:---------------继承,可以继承其他的包,只要继承了,那么该包就包含了其他包的功能,一般都是继承"struts-default"

  abstract:----------------抽象的,值如果是true,代表编写的包是被继承的(基本很少使用)

2.<action>标签:代表配置的action类

  name:-------------------和<package>标签的namespace属性一起决定访问的路径

  class:--------------------配置actionaction类的全路径(默认值是ActionSupport类)

  method:-----------------action类中执行的方法(默认值是execute)

3.<result>标签:action中类方法的执行,返回结果跳转的页面

  name:-------------------action类方法中返回的String

  type:--------------------跳转方式(默认是请求转发,也可以是其他的值)

3.配置文件配置常量

1.可以配置常量的配置文件

  struts.xml:(开发中经常配置常量的位置)

    <constant name="key" value="value" />

  web.xml:

    在StrutsPrepareAndExecuteFilter配置文件中配置初始化参数

  注意:后加载的配置的文件的常量会覆盖之前加载的常量!

2.常用常量

  * struts.i18n.encoding=UTF-8 -- 指定默认编码集,作用于HttpServletRequest的setCharacterEncoding方法

  * struts.action.extension=action,, -- 该属性指定需要Struts 2处理的请求后缀,该属性的默认值是action,即所有匹配*.action的请求都由Struts2处理。如果用户需要指定多个请求后缀,则多个后缀之间以英文逗号(,)隔开

  * struts.serve.static.browserCache=true -- 设置浏览器是否缓存静态内容,默认值为true(生产环境下使用),开发阶段最好关闭

  * struts.configuration.xml.reload=false -- 当struts的配置文件修改后,系统是否自动重新加载该文件,默认值为false(生产环境下使用)

  * struts.devMode = false -- 开发模式下使用,这样可以打印出更详细的错误信息

4.指定多个配置文件(了解)

可以在<package>标签中,使用<include>标签来引入其他的struts_xx.xml的配置文件。例如:
<struts>
<include file="struts-part1.xml"/>
<include file="struts-part2.xml"/>
</struts>
 file下的路径应该为全路径,com/xx/xx.xml

2.Struts2配置文件的更多相关文章

  1. Struts2配置文件详解

    解决在断网环境下,配置文件无提示的问题我们可以看到Struts.xml在断网的情况下,前面有一个叹号,这时,我们按alt+/ 没有提示,这是因为” http://struts.apache.org/d ...

  2. Struts2 配置文件result的name属性和type属性

    Struts2 配置文件result的name属性和type属性:Name属性SUCCESS:Action正确的执行完成,返回相应的视图,success是 name属性的默认值: NONE:表示Act ...

  3. Struts2配置文件模板

    <?xml version = "1.0" encoding = "UTF-8"?><!--下面是Struts2配置文件的DTD信息 --&g ...

  4. Struts2配置文件

    Struts2配置文件 简介: 与Struts2相关的配置文件有好几个,常用的有 struts.properties , web.xml, struts.xml等.web.xml中配置Struts2的 ...

  5. struts2配置文件中action的name属性

    struts2配置文件中action的name属性的第一个字符不要加斜杠 <action name="see" class="baoxiuManage_seeAct ...

  6. Struts2配置文件讲解

    解决在断网环境下,配置文件无提示的问题我们可以看到Struts.xml在断网的情况下,前面有一个叹号,这时,我们按alt+/ 没有提示,这是因为” http://struts.apache.org/d ...

  7. Struts2 配置文件小结

    每次写的博文都被管理员都被移出首页,好气!还希望有哪位大神可以指点迷津-- struts2 配置文件的 result 节点 result 节点是 action 节点的子节点,他代表着 action 方 ...

  8. struts2配置文件的解释

    1 <?xml version="1.0" encoding="GB2312"?>  <!DOCTYPE struts PUBLIC &quo ...

  9. struts2配置文件加载顺序

    struts2配置文件加载顺序: struts-default.xml/ struts-plugin.xml/ struts.xml/ struts.properties/ web.xml

  10. (二)Struts2配置文件

    一.web.xml文件 web.xml配置文件是一种J2EE配置文件,决定servlet容器的HTTP元素需求如何进行处理.它严格来说不是一个Struts2 配置文件,但它是Struts2 运作所需要 ...

随机推荐

  1. vps被封逃逸_v2+cloudflare+websocket+tls+nginx

    每逢重大节日,总有那么一大部分vps凉凉,以下为能正经正常使用vps,无奈之举,此法由于多层代理,夜间速度会有影响,白天感受不明显. 由于博客园内容审查,v2_ray 中间的 下划线为分隔符,相关链接 ...

  2. 添加ali yum源

    wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo #yum clean  a ...

  3. Async Clipboard AP

    转自奇舞周刊,个人学习记录,侵权删 编者按:本文作者李松峰,资深技术图书译者,翻译出版过40余部技术及交互设计专著,现任360奇舞团高级前端开发工程师,360前端技术委员会委员.W3C AC代表 如果 ...

  4. vue Inline JavaScript is not enabled. Is it set in your options?

    Vue 全家桶 vue全面介绍--全家桶.项目实例 https://www.cnblogs.com/nogodie/p/9853660.html vue项目 Inline JavaScript is ...

  5. hdu 3374 最大最小表示法 next

    题目大意: 就是求一个串的最大最小表示法的开始下标,然后求有多少个做大最小表示,输出格式为 最小表示下标 它的个数 最大表示下标 它的个数 基本思路: 最小最大表示法模板题,然后求一下循环节,很容易知 ...

  6. 6380. 【NOIP2019模拟2019.10.06】小w与最长路(path)

    题目 题目大意 给你一棵树,对于每一条边,求删去这条边之后,再用一条边(自己定)连接两个连通块,形成的树的直径最小是多少. 正解 首先,将这棵树的直径给找出来.显然,如果删去的边不在直径上,那么答案就 ...

  7. sql 数据库

    在关系数据库中,最常用的操作就是查询.直线电机推杆 准备数据 为了便于讲解和练习,我们先准备好了一个students表和一个classes表,它们的结构和数据如下: students表存储了学生信息: ...

  8. checkbox、radio使用jquery改变状态以及其他操作

    $('input[type=checkbox]:checked').each(function(index,elem){ $(elem).attr("checked",false) ...

  9. js获取url中的中文参数出现乱码

    解决方法 function getQueryString(key){ var reg = new RegExp("(^|&)"+key+"=([^&]*) ...

  10. C# 中如何输出双引号(转义字符的使用)

    实现效果: 输出这样的一个含有双引号的字符串 "hello" 方式一: 不用 @ 时转义      System.Console.WriteLine("\"he ...