`
hdxiong
  • 浏览: 377022 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

struts.xml 模块化管理

    博客分类:
  • SSH
阅读更多
先贴两段代码,在慢慢解释

(1)struts-user.xml
<struts> 
    <package name="struts-user" extends="struts-default"> 
        <global-results> 
            <result type="redirect-action">UserAction_queryAll</result> 
        </global-results> 
        <action name="UserAction_login" class="userAction" method="login"></action> 
        <action name="UserAction_insert" class="userAction" method="insert"></action> 
        <action name="UserAction_update" class="userAction" method="update"></action> 
        <action name="UserAction_delete" class="userAction" method="delete"></action> 
        <action name="UserAction_queryById" class="userAction" method="queryById"></action>  
        <action name="UserAction_queryByLike" class="userAction" method="queryByLike"></action> 
        <action name="UserAction_queryAll" class="userAction" method="queryAll"> 
            <result>/user/user_list.jsp</result> 
        </action> 
          </package> 
</struts>


(2)struts.xml(引入了struts-user.xml)
<struts> 
    <include file="struts-user.xml"></include> 
    <package name="struts" extends="struts-default"></package> 
</struts>

1. 使用<include>标签重用配置文件

(1)在Struts2中提供了一个默认的struts.xml文件,但如果package、action、interceptors等配置比较多时,都放到一个struts.xml文件不太容易维护。因此,就需要将struts.xml文件分成多个配置文件,然后在struts.xml文件中使用<include>标签引用这些配置文件。如上面的代码。

注意:用<include>引用的xml文件也必须是完成的struts2的配置。实际上<include>在引用时是单独解析的xml文件,而不是将被引用的文件插入到struts.xml文件中。

注意:struts.xml和struts-user.xml中<package></package>标签中的name属性不能相同。道理很简单,<struts></struts>标签中可以有多个<package></package>标签,要通过name属性以示区别。

(2)Apache Struts 2 Documentation: Can we break up a large struts.xml file into smaller pieces --> Yes, there are two approaches. We can include other struts.xml file from a bootstrap, or we can package a struts.xml files in a JAR. Or both.

<1>By Include:A typical struts.xml files will have one or more include elements:

<struts>
    <include file="struts-default.xml"/>
    <include file="config-browser.xml"/>
    <package name="default" extends="struts-default">
    ....
    </package>
    <include file="other.xml"/>
</struts>
The first include element tells the framework to load the struts-default.xml, which it will find in the struts2.jar file. The struts-default.xml file defines the "standard" interceptor and result definitions. You can put your own <include> elements in your struts.xml interchangeably with <package> elements. The configuration objects will be loaded in the order of appearance. The framework reads the configuration from top to bottom and adds objects as they are referenced.

<2>By JAR

A "module" can be added to an application by placing a struts.xml and related classes into a JAR on the classpath. FreeMarker and Velocity templates can also be provided by JAR, making it possible to distribution a module in a single, self-contained JAR that is automatically configured on startup.

2. 全局result(global-results)

(1)有很多时候一个<result>可供很多<action>使用,这时可以使用<global-results>标签来定义全局的<result>,代码见struts-user.xml。执行顺序:当一个Action返回的String没有相应的<result>与之对应,Struts2就会查找全局的<result>。

(2)Apache Struts 2 Documentation: Global Results

Most often, results are nested with the action element. But some results apply to multiple actions. In a secure application, a client might try to access a page without being authorized, and many actions may need access to a "logon" result. If actions need to share results, a set of global results can be defined for each package. The framework will first look for a local result nested in the action. If a local match is not found, then the global results are checked.

<!-- Defining global results -->
<global-results>
    <result name="error">/Error.jsp</result>
    <result name="invalid.token">/Error.jsp</result>
    <result name="login" type="redirectAction">Logon!input</result>
</global-results>
3. <include>标签和<global-results>标签结合

(1)<global-results>标签的作用域只是当前<struts></struts>,也可以说是当前的xml文件;struts2不允许把struts-user.xml(通过<include>引入到struts.xml)中的<global-results>标签写在struts.xml中。
(2)如果struts-user.xml中的package继承自struts.xml中的package,则可以将struts-user.xml中的<global-results>放在struts.xml中。然后struts-user.xml将此<global-results>从struts.xml中继承过来。例如(将上面的两段代码简单修改):

(1)struts-user.xml
<struts> 
    <!-- 这里struts-user继承(extends)的是struts, 即struts.xml中package的name属性值 --> 
    <package name="struts-user" extends="struts"> 
         
        <action name="UserAction_login" class="userAction" method="login"></action> 
        <action name="UserAction_insert" class="userAction" method="insert"></action> 
        <action name="UserAction_update" class="userAction" method="update"></action> 
        <action name="UserAction_delete" class="userAction" method="delete"></action> 
        <action name="UserAction_queryById" class="userAction" method="queryById"></action>  
        <action name="UserAction_queryByLike" class="userAction" method="queryByLike"></action> 
        <action name="UserAction_queryAll" class="userAction" method="queryAll"> 
            <result>/user/user_list.jsp</result> 
        </action> 
    </package> 
</struts>

(2)struts.xml(引入了struts-user.xml)
<struts> 
    <include file="struts-user.xml"></include> 
    <package name="struts" extends="struts-default"> 
        <global-results> 
            <result type="redirect-action">UserAction_queryAll</result> 
        </global-results> 
    </package> 
</struts>
分享到:
评论

相关推荐

    struts.xml(struts2配置)

    包元素用于组织相关的Action和Result,可以看作是模块化的配置。每个`&lt;package&gt;`可以继承其他包,从而重用和扩展配置。默认情况下,它继承自`struts-default`或`struts-blank`包,提供了许多内置的配置。 4. **...

    struts.xml配置详解

    这样做可以使得整个配置更加模块化和清晰,便于团队开发和后期维护。 2. 标签:此标签用于定义Struts2框架的全局常量配置。在Struts2中,开发者可以通过struts.properties文件定义各种配置属性,而这些属性也可以...

    struts.xml常用配置解析

    总结起来,Struts.xml配置文件的`&lt;include&gt;`标签提供了配置文件的模块化管理,使得大型项目更加易于维护。而Action的别名特性则允许我们在一个动作类中实现多个业务逻辑,提升了代码的组织效率。理解并熟练运用这些...

    struts.xml 配置

    在实际开发中,struts.xml的配置应当遵循模块化和可复用的原则,将相似功能的Action归类在同一包下,利用拦截器提高代码复用和灵活性。同时,合理设置常量可以优化性能或满足特定需求。通过阅读博文和实践,开发者...

    struts.xml详细说明.doc

    这样,`struts.xml`可以包含多个子配置文件,实现了配置的模块化。 6. **Package配置**: `package`元素用于组织Action、Interceptor和Result。例如,`namespace`属性定义了Action的命名空间,`extends`属性继承...

    SSH action+struts.xml+jsp

    SSH(Spring、Struts2和Hibernate)是Java开发中常用的一种企业级应用框架组合,用于构建高效、可维护性高的Web应用程序。...这种组合在实际项目中非常常见,为开发高效、模块化的Web应用提供了强大支持。

    Struts2+Hibernate Action+struts.xml+jsp

    Struts2+Hibernate架构是Java Web开发中常用的一种框架组合...这个结构使得项目具有良好的分层和模块化,易于扩展和维护。在实际开发中,还需要考虑异常处理、安全性、性能优化等多个方面,才能构建出高质量的Web应用。

    Struts.XML配置文件说明

    `&lt;struts&gt;`标签内的`&lt;include&gt;`标签用于引入其他XML配置文件,例如`&lt;include file="xx.xml"/&gt;`,这使得配置文件可以模块化,提高代码的可维护性。 **拦截器配置** 拦截器是Struts2中实现业务逻辑控制和增强功能的...

    Struts-config.xml配置详解

    通过合理配置这些元素,可以实现高度模块化、易于维护的Web应用。在配置过程中,还需要注意各个元素的属性设置和相互之间的依赖关系,确保整个应用的流程逻辑正确无误。随着技术的发展,Struts的使用可能会逐渐减少...

    Struts 2 自学之路: 3.1 struts.xml 核心配置实例说明

    这有利于代码的模块化和复用。 6. **常量配置**:通过`&lt;constant&gt;`标签可以设置Struts 2的配置参数,如: ```xml &lt;constant name="struts.devMode" value="true"&gt; ``` 这样可以开启开发模式,提供更丰富的错误...

    struts.xml文件详解

    `&lt;include&gt;` 节点允许将配置分散到多个 XML 文件中,以实现模块化的配置。在这里,`struts-default.xml` 被包含,引入了 Struts 2 的默认配置,包括预定义的拦截器、结果类型等。 4. **&lt;package&gt; 元素**: - `...

    SSH集成代理2.0版和struts.xml中控制器搭配

    这种方式使得代码更加整洁,同时提高了模块化的程度。 此外,SSH框架的整合还涉及到数据访问层。Hibernate作为ORM工具,通常通过Spring的数据访问/集成(DAO)支持来使用。Spring可以管理Hibernate Session,处理...

    Struts2的DTD配置文件struts-2.3.dtd

    Struts2是一个流行的Java web应用程序框架,用于构建和维护可扩展、模块化和高度交互性的MVC(模型-视图-控制器)应用。在Struts2中,`struts.xml`是核心配置文件,它定义了应用的行为、动作、结果和其他组件。为了...

    org.springframework.web.struts-3.1.0.M2.jar

    在实际项目中,我们通常会创建一个Spring配置文件,如`spring-struts.xml`,在这个文件中声明需要管理的Action类,以及相关的拦截器和事务管理策略。同时,Struts的配置文件(struts-config.xml或struts2的struts....

    Struts2.1、Spring3.0、Hibernate3.3整合与S2SH的XML文件拆分

    例如,将`struts.xml`拆分为多个包或模块相关的文件,将`applicationContext.xml`拆分为数据源、服务、DAO等多个部分。这样可以更好地组织和管理项目结构。 综上所述,Struts2.1、Spring3.0和Hibernate3.3的整合...

    开发Spring.Struts.Hibernate应用.

    Spring提供了全面的后端服务管理,Struts则专注于 MVC(Model-View-Controller)架构的实现,而Hibernate是流行的ORM(Object-Relational Mapping)框架,用于简化数据库操作。下面我们将深入探讨这三个框架以及如何...

    struts2+hibenate+spring的配置文件

    这种分工明确的架构设计,使得大型项目能够更好地进行模块化开发,提升代码的可读性和可维护性。 总结来说,SSH框架的配置文件是Java Web开发中的关键组成部分,它们各自负责不同的职责,共同构建了一个高效、灵活...

    struts和xml搭建的一个项目架构

    在项目架构中,Struts和XML的结合使得开发者可以将业务逻辑、数据访问和用户界面有效地分离,从而实现模块化开发。Struts负责控制流程,XML提供配置信息,两者协同工作,使得Web应用的结构更加清晰,易于维护。例如...

    Java进阶Struts多模块的技巧.rar

    Struts框架的多模块设计是其一大特色,它有助于将复杂的项目拆分成多个可管理的小模块,提高代码的可维护性和可扩展性。本资料“Java进阶Struts多模块的技巧”旨在帮助开发者掌握如何有效地组织和管理Struts2框架中...

    struts2.3.16.3

    SSH框架整合指的是Struts2、Spring和Hibernate三个开源框架的集成,它们分别负责表现层、业务逻辑层和数据持久化层,形成一个强大的企业级应用开发解决方案。 Struts2是基于Action和拦截器的模型,它的核心是通过...

Global site tag (gtag.js) - Google Analytics