`

struts1.2多模块开发

阅读更多

一、多个配置文件的支持和模块的支持
支持多个配置文件,是指你能够为ActionServlet同时指定多个xml配置文件,文件之间以逗号

分隔,比如Struts提供的MailReader演示例子中就采用该种方法。

<!-- Action Servlet Configuration -->
<servlet>
<servlet-name>action</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
<init-param>
<param-name>config</param-name>
<param-value>/WEB-INF/struts-config.xml, /WEB-INF/struts-config-

registration.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>

这种方法可以很好地解决修改冲突的问题,不同的开发人员可以在不同的配置文件中设置自己

的Action、ActionForm等等(当然不是说每个开发人员都需要自己的配置文件,可以按照系统

的功能模块进行划分)。但是,这里还是存在一个潜在的问题,就是可能不同的配置文件之间

会产生冲突,因为在 ActionServlet初始化的时候这几个文件最终还是需要合并到一起的。比

如,在struts-config.xml中配置了一个名为 success的<forward>,而在struts-config-

registration.xml中也配置了一个同样的< forward>,那么执行起来就会产生冲突。

为了彻底解决这种冲突,Struts 1.1中引进了模块(Module)的概念。一个模块就是一个独立

的子系统,你可以在其中进行任意所需的配置,同时又不必担心和其它的配置文件产生冲突。

因为前面我们讲过,ActionServlet是将不同的模块信息保存在不同的ModuleConfig对象中的。

要使用模块的功能,需要进行以下的准备工作:

1、为每个模块准备一个配置文件

2、配置web.xml文件,通知控制器

决定采用多个模块以后,你需要将这些信息告诉控制器,这需要在web.xml文件进行配置。下面

是一个典型的多模块配置:

<init-param>
<param-name>config</param-name>
<param-value>/WEB-INF/struts-config.xml</param-value>
</init-param>
<init-param>
<param-name>config/customer</param-name>
<param-value>/WEB-INF/struts-config-customer.xml</param-value>
</init-param>
<init-param>
<param-name>config/order</param-name>
<param-value>/WEB-INF/struts-config-order.xml</param-value>
</init-param>

要配置多个模块,你需要在原有的一个<init-param>(在Struts 1.1中将其对应的模块称为缺

省模块)的基础之上,增加模块对应的<init-param>。其中<param-name>表示为config/XXX的

形式,其中XXX为对应的模块名,<param-value>中还是指定模块对应的配置文件。上面这个例

子说明该应用有三个模块,分别是缺省模块、customer和order,它们分别对应不同的配置文件

3、准备各个模块所需的ActionForm、Action和JSP等资源

但是要注意的是,模块的出现也同时带来了一个问题,即如何在不同模块间进行转发?有两种

方法可以实现模块间的转发,一种就是在< forward>(全局或者本地)中定义,另外一种就是

利用org.apache.struts.actions.SwitchAction。

下面就是一个全局的例子:

    ...
    <struts-config>
...
<global-forwards>
<forward name="toModuleB"
   contextRelative="true"
   path="/moduleB/index.do"
redirect="true"/>  
...
</global-forwards>
...  
    </struts-config>

可以看出,只需要在原有的path属性前加上模块名,同时将contextRelative属性置为true即可

。此外,你也可以在<action>中定义一个类似的本地<forward>。

<action-mappings>
<!-- Action mapping for profile form -->
<action path="/login"
type="com.ncu.test.LoginAction"
name="loginForm"    
scope="request"     
input="tile.userLogin"
validate="true">    
<forward name="success" contextRelative="true" path="/moduleA/login.do"/>
</action>
</action-mappings>

如果你已经处在其他模块,需要转回到缺省模块,那应该类似下面这样定义,即模块名为空。

<forward name="success" contextRelative="true" path="/login.do"/>

此外,你也可以使用org.apache.struts.actions.SwitchAction,例如:

    ...
    <action-mappings>
<action path="/toModule"
type="org.apache.struts.actions.SwitchAction"/>
...   
    </action-mappings>
    ...


PS:使用多个资源文件:
      同样的原因,实现多语言的资源文件太大也是一件痛苦的事情,我们也可以将它按照功

能分解为几个文件进行维护。

第一步:按照功能将内容放入不同的资源文件,不多赘述;
第二步:在struts-config.xml中放置资源文件:

< message-resources parameter ="Resources" null ="false" />
< message-resources parameter ="SmsResources" key ="sms" />
< message-resources parameter ="MmsResources" key ="mms" />
< message-resources parameter ="ReportResources" key ="report" />
说明:这里面的第一个元素(没有 key 属性)成为默认的资源集。所以所有的 JSP 和 servet

都可以通过 servlet 上下文访问这组资源。其他的资源则需要通过指定后面的key值来访问资

源。

第三步:在页面中引用资源文件:
< bean:message bundle ="sms" key ="sms.label.send.name"   />
说明:属性 bundle用于指定要使用的非默认包,即指定前面在struts-config.xml中的key值。

分享到:
评论

相关推荐

    struts1.2驱动包

    总的来说,Struts1.2驱动包是开发基于Struts1.2的Java Web应用的基础,它的稳定性和丰富的功能使得它在很多场景下依然有其价值。对于初学者和经验丰富的开发者来说,理解和掌握Struts1.2可以帮助构建高效、可维护的...

    struts1.2资源整合

    对于`struts1.2源码.rar`,如果你打算进行深度开发或调试,可以将其导入IDE作为模块,以便于代码跟踪和调试。而`Struts1.2API.chm`则应保存在易于访问的地方,便于随时查阅。 在配置Struts1.2时,你需要在web.xml中...

    struts1.2 + spring2.5 + hibernate3.2框架demo

    总结来说,这个demo项目提供了一个学习和实践Struts1.2、Spring2.5和Hibernate3.2集成的平台,涵盖了MVC设计模式、依赖注入、面向切面编程和对象关系映射等多个关键概念。通过深入研究和修改这个项目,开发者能够...

    Struts1.2中文学习手册

    Tiles则是Struts1.2的一个扩展,它允许开发者创建可重用的页面组件,实现了页面的模块化设计。 接着,手册会详细阐述配置文件struts-config.xml的重要性。这是Struts1.2应用的核心配置文件,定义了Action映射、Form...

    struts1.2 from表单提交包含list的对象

    此外,使用Maven或Ivy等构建工具可以帮助管理Struts1.2及其依赖,使得项目更加模块化和可维护。 至于"unicom"这个文件名,可能是指一个具体的案例或示例项目,它可能包含了处理Struts1.2表单提交的代码和配置。如果...

    struts 1.2 类库和源码

    Struts 1.2 是一个历史悠久的Java Web框架,由Apache软件基金会开发,它在Web应用开发领域曾经占据了重要的地位。这个压缩包包含了Struts 1.2版本的类库和源码,使得开发者能够方便地研究和学习这个经典框架的工作...

    struts1.2源码研究

    Struts 1.2支持多个模块配置,模块名称通常以`config/`开头,例如`config/user`表示用户模块。每个模块的配置信息(ModuleConfig和MessageResources)会以模块名称作为标识存储在ServletContext中,方便后续请求的...

    struts1.2.jar包

    1. **MVC模式**:Struts1.2遵循MVC设计模式,将应用程序的业务逻辑、视图呈现和用户交互分离开来,使得代码更加模块化,易于维护和测试。模型层处理数据,视图层负责展示,而控制器则协调这两者之间的交互。 2. **...

    struts1.2拦截器使用插件

    总的来说,Struts1.2的拦截器机制是其强大之处,它允许开发者以模块化的方式扩展框架功能,提高了代码的可维护性和复用性。通过合理地利用拦截器和插件,我们可以构建出更加健壮、高效的Web应用。

    ext+struts1.2图书管理系统

    Struts1.2 提供了控制器组件、视图模板和模型数据绑定,帮助开发者实现MVC设计模式,降低了前后端的耦合度,使得代码更加模块化,易于维护。 图书管理系统是一个常见的Web应用示例,用于管理和检索图书馆中的书籍...

    struts1.2的jar包及源码

    Struts1.2是Apache软件基金会的一个开源项目,...不过需要注意,尽管Struts1.2在过去的开发中发挥了重要作用,但随着技术的发展,现在已经有了更新的替代品,如Struts2和Spring MVC,它们提供了更多特性和更好的性能。

    struts1.2项目指导

    在实际项目开发中,"struts1.2项目指导"通常会涵盖以下内容: 1. **环境搭建**:安装配置JDK、Tomcat服务器,设置开发环境如Eclipse或IntelliJ IDEA,以及添加SSH相关的库文件到项目中。 2. **Struts配置**:编写...

    struts1.2+ajax在线考试系统

    1. **Struts1.2框架**:Struts1.2是Apache软件基金会开发的一个MVC(Model-View-Controller)框架,用于构建企业级的Java Web应用程序。它通过分离业务逻辑、视图展示和控制流程,提高了代码的可维护性和可扩展性。...

    struts1.2.doc

    ### Struts 1.2框架技术的基本原理及组件用法详解 #### 一、MVC模式解析 在探讨Struts框架之前,我们首先需要理解其核心设计模式——MVC(Model-View-Controller)。MVC模式是软件工程中广泛采用的一种架构模式,...

    BBS struts1.2课程设计项目

    在IT行业中,Struts1.2是一个经典的MVC(Model-View-Controller)框架,它在Java Web开发领域有着广泛的应用。本项目以“BBS(Bulletin Board System,电子公告板)”为主题,采用Struts1.2作为核心框架进行构建,...

    图书馆管理系统(struts1.2+mysql)

    本系统采用Java企业级开发框架Struts1.2与关系型数据库MySQL相结合,构建了一个功能完备、易用性强的图书馆管理系统。 Struts1.2是Apache基金会开发的一款MVC(Model-View-Controller)架构的开源框架,它在Java ...

    Struts1.2+Spring 3.0 案例,java代码

    Struts1.2和Spring 3.0是两个在Java Web开发中广泛使用的框架,它们分别专注于MVC(模型-视图-控制器)架构和依赖注入。本案例结合了这两个框架,提供了一种整合应用的实例,以实现更高效、模块化的开发。 Struts...

    struts1.2新手上路(注册登录模块 简单)

    通过这个简单的注册登录模块实践,新手可以理解Struts1.2框架的基本工作原理,掌握MVC模式的应用,并为后续深入学习和开发复杂Web应用打下基础。同时,这也是理解和掌握其他Java Web框架如Spring MVC、Struts2等的...

Global site tag (gtag.js) - Google Analytics