玩技术,Geeker
一个原创技术文章分享网站

Struts2学习之配置文件

前言

定义了Action类,接下来要干什么?要去struts.xml中配置这个Action类;Action类处理完以后,返回逻辑视图名称,如何映射到物理视图?又要去struts.xml配置中寻找映射。Struts2运行的每一步都需要围绕这个struts.xml,而这也是Struts2这个框架设计的关键,为了尽最大程度、最大努力的解耦每个模块,每个模块之间的关联基本上都是通过配置文件来搞定的,所以这些配置文件在Struts2中地位可见一斑,这篇文章就对Struts2框架中经常见到的配置文件进行总结,能够通过这些配置文件,整体上了解Struts2的脉络。

我们在开发,阅读一些文章的过程中,经常会碰到以下几个配置文件:

  • struts-default.xml配置文件
  • struts-plugin.xml配置文件
  • struts.xml配置文件
  • struts.properties配置文件
  • web.xml配置文件

接下来就逐一对这些配置文件进行讲解和总结。

struts-default.xml配置文件

从名字就能看出来,这是一个默认的配置文件,也是基本配置文件;在后续的学习过程中,你会发现很多配置项的默认值,很多框架最基本的配置都是在该文件中;但是,我们几乎不会直接和这个文件打交道,甚至有的人都不知道这个文件在哪里。现在你可以使用解压缩工具查看struts2-core-2.3.24.1.jar这文件,在struts2-core-2.3.24.1.jar文件中,可以发现struts-default.xml配置文件的身影。比如Action的默认处理类就是在该配置文件中配置的,配置如下:

<default-class-ref class="com.opensymphony.xwork2.ActionSupport" />

由于在该配置文件中的配置是最基本的配置,我们可以在后续总结的配置文件中覆盖默认配置。由于配置太多,在后续的学习中,我们遇到一个总结一个。

struts-plugin.xml配置文件

从名字也能看出,这个配置文件是Struts2框架插件的配置文件,由于Struts2框架有很多丰富的插件,所以很多在struts-default.xml配置文件中定义的默认值对于这些插件来说,已经不能胜任了,所以只好在插件的struts-plugin.xml配置文件中覆盖它们,就是这样,如果你亲自去写一个Struts2的插件,你就会明白这一切,就是这样,这个配置文件就是来干这个事情的。

你会从你下载的Struts2的安装包的lib/目录下,发现很多类似这样struts2-xxx-plugin-xxx.jar命名的Jar包,就是这些插件,你可以使用解压缩工具查看这些Jar包,你就会发现struts-plugin.xml配置文件。

struts.xml配置文件

这个文件太重要了,看完这篇《struts2学习之初见struts2》,你就会知道struts.xml这个配置文件的重要性了。

我们可以在struts.xml中配置开发的Action类,配置逻辑视图与物理视图的映射,配置常量值等。我们基于Struts2开发的Web应用,基本上大部分的配置都会在struts.xml中。有的时候,我们在读别人的代码时,也会根据struts.xml中的配置,理清思路。后续的文章中还会用到struts.xml配置文件,到时候再具体说说如何在该文件中进行配置。

struts.properties配置文件

该文件是常量配置文件,该配置文件定义了Struts2框架的大量常量,这些常量对于整个Struts2应用整体都起作用,我们可以通过改变这些常量来满足应用的需求。

struts.properties文件是一个标准的Properties文件,该文件包含了一系列的key-value对,每个key就是一个Struts2常量,该key对应的value就是一个Struts2的常量值,例如:

### Parser to handle HTTP POST requests, encoded using the MIME-type multipart/form-data
# struts.multipart.parser=cos
# struts.multipart.parser=pell
# struts.multipart.parser=jakarta-stream
struts.multipart.parser=jakarta
# uses javax.servlet.context.tempdir by default
struts.multipart.saveDir=
struts.multipart.maxSize=2097152

在struts2-core-2.3.24.1.jar包的\org\apache\struts2目录下,有一个default.properties文件,该文件内部为Struts2的所有常量都指定了默认值,我们可以通过查看该文件来了解Struts2所支持的常量。但是很多时候,我们都看不到struts.properties配置文件,或者说不使用struts.properties配置文件,而是直接将常量配置到了struts.xml配置文件中,例如:

<constant name="struts.custom.i18n.resources" value="jellythink" />

web.xml配置文件

对于web.xml就无须多说了,作为整个Web应用的配置文件,在总结JSP和Servlet的时候,就已经说过了,这里就不累述了,不熟悉的朋友,就翻翻我以前总结的文章把。

常量配置

在基于struts2框架进行开发时,我们需要配置很多常量,我们经常需要使用这些常量来管理应用的运行,下面来说说如何配置这些常量。

首先,你需要知道,在struts2框架中,有很多的常量,这些常量都有默认的值,而这些默认值都配置在default.properties文件中;我们可以根据我们应用的需要,覆盖default.properties中定义的常量。

其次,如何覆盖呢?我们可以在struts.properties配置文件中定义常量,从而实现覆盖;也可以在struts.xml配置文件中定义常量,实现覆盖,又或可以在struts-plugin.xml配置文件中进行覆盖;这么多配置文件都可以定义常量,那么又以谁的为准呢?

最后,就是关乎哪个配置文件中的常量配置才是最后有效的。通常,在struts2框架中是按照如下顺序加载struts2常量的:

  • struts-default.xml配置文件
  • struts-plugin.xml配置文件
  • struts.xml配置文件
  • struts.properties配置文件
  • web.xml配置文件

就是按照顺序搜索配置的常量,如果在多个文件中配置了同一个Struts2常量,则后一个文件中配置的常量值会覆盖前面文件中配置的常量值。对于Struts2中那么的常量配置,在后续的学习中,碰到一个就总结一个。

包含其它配置文件

在开发大型应用的时候,经常会遇到一个问题,那么多Action,那么多的配置项,这些都是配置在struts.xml中的,随着应用的迭代,struts.xml文件越来越大,这个时候就需要一种能够将struts.xml进行分解,然后又能在struts.xml文件中包含分解出来的配置文件的功能。

是的,Struts2提供这种功能,当struts.xml文件过于庞大、臃肿的时候,我们可以将struts.xml文件分成struts-part1.xml、struts-part2.xml(子配置文件命名没有要求)等等子配置文件,例如:

struts-part1.xml代码如下:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1.7//EN"
    "http://struts.apache.org/dtds/struts-2.1.7.dtd">
<struts> 
    ...
</struts>

在struts.xml文件中这样包含其他配置文件:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1.7//EN"
    "http://struts.apache.org/dtds/struts-2.1.7.dtd">
<struts> 
    <!-- 通过include元素导入其他配置文件 -->
    <include file="struts-part1.xml" />
    ...
</struts>

使用<include file="..." />方式,struts.xml可以包含其他的配置文件,而struts.xml文件由Struts2框架负责加载,从而可以将所有配置信息都加载进来。

总结

这篇文章对Struts2框架中经常使用的一些配置文件进行了梳理。在这篇《Struts2学习之初见Struts2》文章中从全局把握了Struts2框架。而这篇《Struts2学习之配置文件》文章,就是从细节角度来把握Struts2框架,希望对你有帮助。

果冻想-一个原创技术文章分享网站。

2016年01月06日 于呼和浩特。

未经允许不得转载:果冻想 » Struts2学习之配置文件

分享到:更多 ()

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

在这里玩技术,享受技术带来的疯狂

捐赠名单关于果冻