Struts2常量的配置

简介:

    struts.xml配置文件最大的作用就是配置Action和请求之间的对应关系,并配置逻辑视图名和物理视图资源之间的对应关系。除此之外,struts.xml文件还有一些额外的功能,例如Bean配置、配置常量、导入其他配置文件等。

    Struts2除了可使用struts.xml文件来管理配置之外,还可使用struts.properties晚间来管理常量,该文件定义了struts2框架的大量常量,开发者可以通过改变这些常量来满足应用的需求。struts.properties文件是一个标准的Properties文件,该文件包含了系列的key-value对,每个key就是一个struts2常量,每个value就是struts2的常量值。

  只要将struts.properties文件放入Web应用的类加载路径下,Struts2框架就可以加载该文件,通常我们将该文件放在WEB-INF/classes路径下。在struts2-core-2.2.1.jar压缩文件的org/apache/struts2路径下有一个default.properties文件,该文件里为Struts2的所有常量,这些常量都有默认的值,我们可以通过打开这个文件来了解struts2所支持的常量,这里不作介绍。

  Struts2默认会加载类加载路径下的struts.xml, struts-default.xml, struts-plugin.xml三类文件,其中struts.xml是开发者定义的默认配置文件,struts-default.xml是Struts2框架自带的配置文件,struts-plugin.xml是Struts2插件的默认配置文件。

  Struts2配置常量公有三种方式:

  • 通过struts.properties文件

  • 通过struts.xml配置文件

  • 通过Web应用的web.xml文件

  Struts2的所有配置文件,包括struts-default.xml、struts-plugin.xml,甚至用于自定义的,只要Struts2加载的配置文件中都可以使用常量配置的方式来配置Struts2常量。如下struts.xml配置片段配置了一个struts常量,该常量可以代替struts.properties文件中Struts2配置属性。

?
1
2
3
4
< struts >
     <!-- 通过constant元素配置Struts2的属性 -->
     < constant  name = "struts.custom.i18n.resource"  value = "mess" />
</ struts >

  除此之外,当我们在web.xml文件中配置StrutsPrepareAndExecuteFilter时也可以配置Struts2常量,此时采用为StrutsPrepareAndExecutorFilter配置初始化参数的方式来配置Struts2常量,如下是代码片段:

?
1
2
3
4
5
6
7
8
< filter >
  < filter-name >struts2</ filter-name >
  < filter-class >org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecutFilter</ filter-class >   
    < init-param >
    < param-name >struts.custom.i18n.resource</ param-name >
    < param-value >mess</ param-value >
  </ init-param >
</ filter >

  上面的配置文件中出题字代码配置了一个常用属性:struts.custom.i18n.resources,该属性指定了应用所需的国际化资源文件的baseName为mess。

  通常推荐在struts.xml文件中定义struts2属性,而不是在struts.properties文件中定义,之所以保留使用struts.properties文件定义Struts2属性的方式,主要是为了保持与WebWork的向后兼容性。

  通常,Struts2框架按照如下的顺序加载Struts2常量:

  • struts-default.xml:该文件保存在struts2-core-2.1.2.jar文件中

  • struts-plugin.xml:该文件保存在struts2-Xxx-2.1.2.jar等Struts2插件的jar文件中

  • struts.xml:该文件是Web应用默认的Struts2配置文件

  • struts.properties:该文件是Struts2默认的配置文件

  • web.xml:该文件是Web应用的配置文件

  上面定义了Struts2框架搜索常量的顺序,如果在多个文件中配置了同一个struts2常量,则后一个文件中配置的常量会覆盖前面文件中配置的常量值。

  在默认情况下,Struts2只自动加载类加载路径下的struts.xml, struts-default.xml和struts-plugin.xml三类文件。但随着应用规模的增大,系统中Action的数量也大量增加,将导致struts.xml配置文件变得非常臃肿。为了避免这个问题,提高struts.xml文件的可读性,我们可以将struts.xml配置文件分解成多个配置文件,然后在sturts.xml文件中包含其他配置文件即可

  下面的struts.xml文件中就通过include手动导入了一个配置文件:struts-part1.xml文件,这样,在加载struts.xml文件的时候就会同时加载struts.xml文件中引用到的struts-part1.xml文件。通过这种方式,就可以将Struts2的Action按模块配置在多个配置文件当中,下面是代码片段:

?
1
2
3
< struts >   
     < include  file = "struts-part1.xml"  />
</ struts >

目录
相关文章
struts2中获取作用域的2种方式,RequestAware
struts2中获取作用域的2种方式,RequestAware
96 0
struts2中获取作用域的2种方式,RequestAware
Struts2动态方法调用,和struts.xml的通配符方式调用
Struts2动态方法调用,和struts.xml的通配符方式调用
125 0
Struts2动态方法调用,和struts.xml的通配符方式调用
SpringBoot——Thymeleaf中的表达式基本对象、表达式功能对象
SpringBoot——Thymeleaf中的表达式基本对象、表达式功能对象
SpringBoot——Thymeleaf中的表达式基本对象、表达式功能对象
|
前端开发 Java
Struts2实现类型转换器(十五)下
Struts2实现类型转换器(十五)
124 0
Struts2实现类型转换器(十五)下
|
前端开发 API
Struts2实现类型转换器(十五)上
Struts2实现类型转换器(十五)
250 0
Struts2实现类型转换器(十五)上
|
Java Apache Maven
struts 结果类型
FreeMarker 一个模板引擎 即 FreeMarkergithub https://github.com/apache/freemarker网址 https://freemarker.apache.
1030 0
|
Web App开发 前端开发 Java
SSM-SpringMVC-28:SpringMVC类型转换之自定义日期类型转换器
     ------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥-------------         例子很简易,要明白的是思路,话不多说,开讲 上篇博客不是说springmvc默认的日期转换格式是yyyy/MM/dd吗?如果我们要别的格式怎么办?(例如yyyyM...
1498 0
|
JavaScript 微服务 Java
thymeleaf全局常量定义(非国际化)
微服务现在最流行的莫过于springboot,官方推荐两种模板语言,freemarker和thymeleaf,本文只介绍thymeleaf中如何定义全局常量。
1615 0