一、多个配置文件的支持和模块的支持
支持多个配置文件,是指你能够为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等技术的应用,提高自己的开发技能。同时,这个资料包也为企业提供了一个可靠的、成熟的办公自动化管理系统,
OA办公自动化管理系统是一个基于Struts1.2、Hibernate3.0、Spring2和DWR技术实现的Java Web应用项目。该系统采用了MVC设计模式,将业务逻辑、数据访问和表示层分离,提高了代码的可维护性和可扩展性。Struts1.2作为...
该项目采用了Struts1.2作为前端框架,Hibernate3.0作为数据库持久层框架,Spring2作为业务层框架,以及DWR作为远程调用技术,实现了前后端分离的开发模式。 项目功能丰富,包括用户管理、部门管理、职位管理、员工...
该资源包名为“基于JSP的OA办公自动化管理系统”,它集成了当前主流的Java开发框架,包括Struts1.2、Hibernate3.0、Spring2以及DWR。整个系统以JSP作为前端展示技术,利用Struts1.2进行MVC架构的实现,使得模型、...
OA办公自动化管理系统是一款基于Struts1.2、Hibernate3.0、Spring2和DWR的综合性企业级应用解决方案,旨在帮助企业实现高效、便捷的办公管理。该系统具备以下功能: 1. 用户管理:支持用户注册、登录、权限分配、...
技术实现:Struts1.2 + Hibernate3.1+JavaScript+AJax 开发环境:Linux + Tomcat + MySQL + MyEclipse 项目描述:主要实现网上购物系统功能模块:用户登录 注册、商品显示、购物车、订单处理等。 具体描述:独立...
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...
DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "http://struts.apache.org/dtds/struts-config_1_2.dtd"> <struts-config> ...
名称:复读365英语在线学习平台1.2版 开发工具:eclipse 采用技术:j2ee, struts, hibernate, spring, jsp, jquery, ajax 运行环境:jdk6.0, tomcat6, mysql5 操作系统:linux或windows server 本系统是一个多人...
整个程序是struts1.2的版本构架,数据库是mysql,用户名root,密码1234,希望这个程序可以为初学者提供帮助! 数据库文件就是那个sql文件,启动mysql后,导入这个sql文件就可以了。主页上的登陆是ajax的,下面...
(2)运行本程序时需要将SQL Server 2000数据库的驱动包(msbase.jar、mssqlserver.jar、msutil.jar)、Struts 1.2的包和Hibernate 3.2的包拷贝到WEB-INF\lib路径下,这些包可以到http://www.mingribook.com网站上...
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 ...
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 ...
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 ...
第2篇 典型模块开发 第4章 在线文本编辑器(fckeditor) 4.1 分析fckeditor在线文本编辑器 4.2 fckeditor在线文本编辑器初级应用 4.3 fckeditor在线文本编辑器常用配置 4.4 fckeditor在线文本编辑器...
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的...
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...
2.2.4. 用 Struts 开发Web 应用......................................................................................42 2.3. 为什么需要框架.................................................................