读书人

一步一步跟小弟我学Struts2 Stru

发布时间: 2012-08-21 13:00:21 作者: rapoo

一步一步跟我学Struts2 —— Struts2配置详解

专栏地址:http://www.iteye.com/wiki/struts2/1386-detailed-configuration-in-struts2

本篇文章让我们来详细探讨一下Struts2的配置文件的结构、配置文件的各个节点和每个节点中元素的使用方式。

总揽

Struts2的配置文件是以XML的形式出现的。不过它的XML的语义比较简单,下面是我抽取了位于struts2-core-2.0.14.jar内部的struts-default.xml的片段:



        这点没什么好说的,在struts.xml中,你可以为某个接口声明它所对应的实现类。

        name属性

        你可以声明多个实现类,使用name属性进行区分。在注入的时候,将使用这个属性的值作为接口实现类的选择。

        required属性

        你还可以通过required属性,来指定是否在运行时必不可少的注入。如果reqired被设置成false,那么当不存在相应的接口定义时,注入将被忽略。

        static属性

        在XML的定义中,还可以使用static属性。如果static属性被设置成true,那么注入将针对bean中的static方法和static属性进行。

        2. 在代码中使用Annotation进行注入



            这段来自Struts2的Reference的引用,基本上阐明了namespace的作用:对于action配置进行逻辑划分。

            如果我们不为package节点指定namespace,Struts2默认使用一个空字符串作为默认的namespace。当然,也可以使用"/"等字符串来表示namespace。

            Struts2在根据URL进行寻址的时候,使用以下的步骤:

            1) 根据URL进行Namespace和ActionName的计算

            2) 根据计算的得到的Namespace和ActionName查找package节点中相应配置

            3) 如果查找失败,则查找Namespace为空,ActionName为整个URL的配置

            有关上述3点的详细信息,请参考Struts2的Reference:http://struts.apache.org/2.0.14/docs/namespace-configuration.html

            result-types节点

            在result-types节点中,我们可以声明在本package中所支持的Result类型。这些Result类型,将在action节点中被引用到。

            interceptors节点

            在interceptors节点中有两类节点:<interceptor>和<interceptor-stack>。这两个节点都用于声明拦截器。前者的作用,是真正定义一个拦截器。而后者则通过引用已经定义的拦截器,指定他们的执行顺序。

            当我们在试图在Action中引用拦截器时,我们实际上是为某个Action指定需要执行哪些拦截器,并且为这些拦截器指定执行顺序。所以Action所引用的,是某个<interceptor-stack>中的定义。

            缺省配置指向

            为了简化配置,我们可以在package节点中指定本package内的缺省配置指向。这可以通过<default-interceptor-ref>、<default-action-ref>、<global-results>等子节点来完成。

            action节点

            action节点是所有的Runtime配置的核心内容。它的主要作用就是指定URL与Action之间的映射关系。同时,在action节点中你也可以指定action执行时的相关配置,例如action所引用的interceptor等。

            参考文档

            上面所有的内容,实际上我只是做了一些简单的概括和归纳,至于每个节点语义和每个节点中具体属性的使用,我认为还是需要参考Struts2的Reference,因为Reference的讲解比任何教程都来的详细和正确,所以希望大家在了解了这些配置的基本分类之后,重新阅读Struts2的Reference的相关章节,从而更加深刻的理解Struts2配置文件的方方面面:http://struts.apache.org/2.0.14/docs/configuration-elements.html

读书人网 >软件架构设计

热点推荐