`

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值。

分享到:
评论

相关推荐

    OA办公自动化管理系统(Struts1.2+Hibernate3.0+Spring2+DWR).rar

    OA办公自动化管理系统是一个...通过学习这个资料包,开发者可以掌握Struts1.2、Hibernate3.0、Spring2和DWR等技术的应用,提高自己的开发技能。同时,这个资料包也为企业提供了一个可靠的、成熟的办公自动化管理系统,

    OA办公自动化管理系统(Struts1.2+Hibernate3.0+Spring2+DWR)130224.rar

    OA办公自动化管理系统是一个基于Struts1.2、Hibernate3.0、Spring2和DWR技术实现的Java Web应用项目。该系统采用了MVC设计模式,将业务逻辑、数据访问和表示层分离,提高了代码的可维护性和可扩展性。Struts1.2作为...

    java_jsp项目源码_OA办公自动化管理系统(Struts1.2+Hibernate3.0+Spring2+DWR

    该项目采用了Struts1.2作为前端框架,Hibernate3.0作为数据库持久层框架,Spring2作为业务层框架,以及DWR作为远程调用技术,实现了前后端分离的开发模式。 项目功能丰富,包括用户管理、部门管理、职位管理、员工...

    源码基于JSP的OA办公自动化管理系统(Struts1.2+Hibernate3.0+Spring2+DWR).rar

    该资源包名为“基于JSP的OA办公自动化管理系统”,它集成了当前主流的Java开发框架,包括Struts1.2、Hibernate3.0、Spring2以及DWR。整个系统以JSP作为前端展示技术,利用Struts1.2进行MVC架构的实现,使得模型、...

    java_jsp项目源码_OA办公自动化管理系统(Struts1.2+Hibernate3.0+Spring2+DWR).rar

    OA办公自动化管理系统是一款基于Struts1.2、Hibernate3.0、Spring2和DWR的综合性企业级应用解决方案,旨在帮助企业实现高效、便捷的办公管理。该系统具备以下功能: 1. 用户管理:支持用户注册、登录、权限分配、...

    仿当当网mvc架构设计

    技术实现:Struts1.2 + Hibernate3.1+JavaScript+AJax 开发环境:Linux + Tomcat + MySQL + MyEclipse 项目描述:主要实现网上购物系统功能模块:用户登录 注册、商品显示、购物车、订单处理等。 具体描述:独立...

    基于JAVA公共资源模块的设计与开发(源代码+论文).zip

    Smart 在线考试项目(以下简称“Smart”...具体框架版本:Struts 1.2 + hibernate 2.1。 对于Hibernate的数据库IO操作,将采用DAO模式将操作封装至DAO对象中。而将建立专门的业务层,对WEB层及其他子模块或类进行接口。

    毕业设计论文-都市供求信息网的设计与实现

    框架Struts1.2 --------------------------------------- 目录 摘 要 I Abstract II 第 1 章 引 言 1 1.1 课题的研究目的和意义 1 1.2 国内外发展状况 1 1.3 研究内容及目标 2 第 2 章 开发方法及关键技术简介 4 2.1...

    SSH开发纪要整合解决四大问题(中文、jar包冲突、延时加载、模块化)文档

    DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "http://struts.apache.org/dtds/struts-config_1_2.dtd"&gt; &lt;struts-config&gt; ...

    复读365英语在线学习平台1.2版

    名称:复读365英语在线学习平台1.2版 开发工具:eclipse 采用技术:j2ee, struts, hibernate, spring, jsp, jquery, ajax 运行环境:jdk6.0, tomcat6, mysql5 操作系统:linux或windows server 本系统是一个多人...

    JSP课程设计:一个新闻发布的适时监测系统.rar

    整个程序是struts1.2的版本构架,数据库是mysql,用户名root,密码1234,希望这个程序可以为初学者提供帮助!  数据库文件就是那个sql文件,启动mysql后,导入这个sql文件就可以了。主页上的登陆是ajax的,下面...

    人力资源管理系统 java jsp sql2000数据 源码 毕业论文

    (2)运行本程序时需要将SQL Server 2000数据库的驱动包(msbase.jar、mssqlserver.jar、msutil.jar)、Struts 1.2的包和Hibernate 3.2的包拷贝到WEB-INF\lib路径下,这些包可以到http://www.mingribook.com网站上...

    JAVA公共资源模块的设计与开发(源代码+论文)

    1.2课题目的 1 1.3课题意义 1 2 系统实现架构环境与技术说明 1 2.1系统架构 1 2.2系统实现环境和技术 2 2.2.1开发环境 2 2.2.2 运行环境 2 2.3系统框架说明 2 2.3.1 struts 介绍 2 2.3.2 理解MVC设计模式 5 2.3.3 ...

    Smart系统-题库及试卷管理模块的设计与开发

    1.2国内现状 1 1.3本课题研究的意义 1 2相关理论知识及其技术 2 2.1系统开发环境及技术 2 2.1.1 开发环境 2 2.2框架介绍 2 2.2.1 Struts 简介 2 2.2.2 Spring简介 4 2.2.3 Hibernate 简介 4 2.2.4 SQLServer 2000 ...

    Java题库及试卷管理模块的设计与开发毕业论文

    1.2国内现状 1 1.3本课题研究的意义 1 2相关理论知识及其技术 2 2.1系统开发环境及技术 2 2.1.1 开发环境 2 2.2框架介绍 2 2.2.1 Struts 简介 2 2.2.2 Spring简介 4 2.2.3 Hibernate 简介 4 2.2.4 SQLServer 2000 ...

    JAVA WEB典型模块与项目实战大全

    第2篇 典型模块开发  第4章 在线文本编辑器(fckeditor)  4.1 分析fckeditor在线文本编辑器  4.2 fckeditor在线文本编辑器初级应用  4.3 fckeditor在线文本编辑器常用配置  4.4 fckeditor在线文本编辑器...

    Eclipse开发入门与项目实践 源代码

    1.2 Eclipse开发环境的搭建 3 1.2.1 JDK的安装 4 1.2.2 JDK环境变量的设置 5 1.2.3 Eclipse的安装 6 1.2.4 Eclipse多国语言包的安装 8 1.2.5 Eclipse中文本编辑器编码的设置 10 第2章 Eclipse中JDT的...

    java高校学生选课系统

    5.2.1.2 管理模块主体界面 20 5.2.1.3 学生模块主体界面 21 5.3 系统功能模块设计 22 5.3.1 用户模块 22 5.3.1.1 用户注册流程 22 5.3.1.2 用户注册JSP页面 22 5.3.1.3 用户登录流程 24 5.3.1.4 用户登录JSP...

    Struts in Action中文版

    2.2.4. 用 Struts 开发Web 应用......................................................................................42 2.3. 为什么需要框架.................................................................

Global site tag (gtag.js) - Google Analytics