Struts 1.1的一个新特性是应用模块的概念。应用模块允许将单个Struts应用划分成几个模块,每个模块有自己的Struts配置文件, JSP页面,Action等等。这个新特性是为了解决大中型的开发队伍抱怨最多的一个问题,即为了更好的支持并行开发允许多个配置 文件而不是单个配置文件。
在用struts进行大型项目开发中,使用这种新特性将是非常好的选择。
下面我以一个非常简单的例子来展示这一功能。
通常在单模块进行开发时,文件的最一般的目录结构如下:
test/
..../web-inf/
.........../classes
.........../lib
.........../*.tld
.........../struts-config.xml
........... /web.xml
........... /validator-rules.xml
........... /validation.xml
........... ...
..../js
..../css
..../main1.jsp (本例使用的一个简单的jsp页面)
..../*.jsp
... ..
如果我们增加一个单独的模块如:test1,则文件的最一般的目录结构如下:
test/
..../test1 ****
........./main11.jsp (本例使用的一个简单的jsp页面)
........./*.jsp ****
..../web-inf/
.........../classes
.........../lib
.........../*.tld
.........../struts-config.xml
........... /struts-test1-config.xml *****
........... /web.xml
........... /validator-rules.xml
........... /validation.xml
........... ...
.../js
... /css
.../main1.jsp (本例使用的一个简单的jsp页面)
.../*.jsp
... ..
[旁边带有“****”的为新增的一些文件或目录]
以下为变更的几个xml配置文件:
1.struts-config.xml
在原来的action-mapping 增加switchAction 如:
....
....
<action-mappings>
<!-- Edit user registration -->
<action path="/login"
type="com.ifreeway.rms.v12.action.LoginAction"
scope="request">
<forward name="error" path="/main1.jsp"/>
</action>
<action path="/login1"
type="com.ifreeway.rms.v12.action.LoginAction1"
scope="request">
<forward name="error" path="/main1.jsp"/>
</action>
<action path="/switchdo" type="org.apache.struts.actions.SwitchAction"/> ****
</action-mappings>
....
....
[旁边带有“****”的为新特性中增加的配置]
2.struts-test1-config.xml
添加输入这个模块的actionmapping 如下:
....
....
<action-mappings>
<!-- Edit user registration -->
<action path="/login3"
type="com.ifreeway.rms.v12.action.LoginAction2"
scope="request">
<forward name="error" path="/main11.jsp"/>
</action>
</action-mappings>
....
....
3.web.xml
....
....
<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</param-value>
</init-param>
<init-param>
<param-name>config/test1</param-name> *****
<param-value>/WEB-INF/struts-test1-config.xml</param-value> *****
</init-param>
<init-param>
<param-name>debug</param-name>
<param-value>3</param-value>
</init-param>
<init-param>
<param-name>detail</param-name>
<param-value>3</param-value>
</init-param>
<load-on-startup>2</load-on-startup>
</servlet>
....
....
[旁边带有“****”的为新特性中增加的配置]
大家可以看到在struts-test1-config.xml中增加了下面代码:
<action path="/switchdo" type="org.apache.struts.actions.SwitchAction"/>
因为在struts1.1中模块之间的导航要使用到org.apache.struts.actions.SwitchAction,如果你查看struts1.1的源代码可以发现
org.apache.struts.actions.SwitchAction需要两个参数:prefix 和 page 下面对这个参数逐一说明:
这两个参数均要以“/”开头
prefix 简单一点就是新增模块的名字,本例为:test1
page 就是在新的strutsconfig配置文件中要使用的actionmapping的名字 就本例为:login3.do
注意:如果是要使用却省模块的调用的话 prefix=空字符串
好了下面给出模块间转换的方法
启动Tomcat
http://localhost:8080/test/switchdo.do?prefix=/test1&page=/login3.do
则调用struts-test1-config.xml下的/login3.do
http://localhost:8080/test/switchdo.do?prefix=&page=/login1.do
则调用struts-config.xml下的/login1.do
http://localhost:8080/test/switchdo.do?prefix=&page=/login.do
则调用struts-config.xml下的/login.do
总的来说模块之间的转换要用到org.apache.struts.actions.SwitchAction,而它需要传递两个参数(一般出错的地方极有可能出在参数
的错误上,请注意了)
[注:在struts1.1正式版中已经支持多了配置文件]
如:<forward name="success" path="/switch.do?prefix=/xx/xxxx&page=/getCaseSummaryDetail.do" />
注释:&表示&符号。
<action path="/switch" type="org.apache.struts.actions.SwitchAction"/>
分享到:
相关推荐
import org.apache.struts.action.ActionForm;import org.apache.struts.action.ActionForward;import org.apache.struts.action.ActionMapping;import org.apache.struts.actions.DispatchAction等缺少
<plugin class="org.apache.struts2.spring.plugin.SpringPlugin"> <param name="contextConfigLocation">classpath:spring/applicationContext.xml <!-- ...其他配置... --> </struts> ``` 在上述配置中,...
例如,可以创建一个继承自`org.apache.struts2.actions上传ActionSupport`的自定义Action,重写其中的`execute()`方法。在这个方法中,通过`ActionContext`获取到`ServletActionContext`,然后使用`...
标题中的"PyPI 官网下载 | aws-cdk.aws-codepipeline-actions-1.107.0.tar.gz"表明这是一个从Python Package Index (PyPI) 官方网站下载的软件包,具体是aws-cdk的一个模块,专注于aws-codepipeline-actions,版本号...
标题中的"PyPI 官网下载 | aws-cdk.aws-cloudwatch-actions-1.42.1.tar.gz"表明这是一个在Python Package Index (PyPI) 官网上发布的软件包,名为`aws-cdk.aws-cloudwatch-actions-1.42.1`,并且它已经被打包为`.tar...
Appium本身是一个开源的自动化测试工具,支持iOS、Android以及Windows应用程序,它的核心理念是实现跨平台的自动化测试,通过WebDriver协议来驱动各种设备上的应用。 在描述中提到,如果你需要使用Python编写脚本来...
总的来说,`aws-cdk.aws-ses-actions-1.138.2`库为Python开发者提供了强大且灵活的工具,用于构建AWS SES的邮件处理策略。通过利用这个库,开发人员可以轻松地在AWS CDK项目中实现邮件自动化,从而提高效率,减少...
在 Struts 应用程序中,`struts-config.xml` 文件是核心配置文件,它定义了应用的行为、控制器(Actions)、数据源(Form Beans)以及视图(JSP 页面)之间的关系。本文将深入探讨 `struts-config.xml` 的主要元素和...
资源分类:Python库 所属语言:Python 资源全名:aws-cdk.aws-ses-actions-1.41.0.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059
资源分类:Python库 所属语言:Python 资源全名:aws-cdk.aws-ses-actions-1.146.0.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059
**Python库aws_cdk.aws_ses_actions-1.122.0-py3-none-any.whl详解** 本文将深入探讨Python库`aws_cdk.aws_ses_actions-1.122.0-py3-none-any.whl`,它是AWS Cloud Development Kit(CDK)的一部分,用于构建和管理...
《PyPI官网下载:深入解析automatic-actions-0.0.79.tar.gz》 PyPI(Python Package Index)是Python开发者的重要资源库,它提供了大量的Python库,供全球的程序员们下载、分享和使用。本篇文章将围绕"automatic-...
标题中的"PyPI 官网下载 | actions_includes-0.0.post35-py3-none-any.whl"指的是在Python的包索引服务(Python Package Index,简称PyPI)上发布的名为`actions_includes`的软件包的一个版本。PyPI是Python开发者...
- org.apache.struts.actions:提供了预定义的Action子类,如RedirectAction、ExecuteAction等。 - org.apache.struts.config:用于配置Struts应用的类,如Config和ModuleConfig。 - org.apache.struts.util:工具...
uses: actions-includes/deploy-to-production # 假设有一个这样的功能在库中 with: env: API_KEY: ${{ secrets.API_KEY }} ``` 以上就是关于“actions_includes-0.0.post38-py3-none-any.whl”这个Python库的...
使用这个库进行开发时,开发人员可以在Python代码中导入`aws_cdk.cx_api`模块,然后调用其提供的函数和类来管理和操作AWS CDK应用。例如,创建一个新的CDK应用程序实例: ```python from aws_cdk import core app =...
CDK引入了一种声明式的方法来构建云应用,让开发者可以使用类、函数和对象来描述AWS资源,而不是传统的JSON或YAML配置文件。aws-cdk.aws-codepipeline-1.42.1是AWS CDK的一个组件,专注于AWS CodePipeline服务。 ...
标题中的"PyPI 官网下载 | aws-cdk.aws-iot-actions-alpha-2.3.0a0.tar.gz"指的是Python Package Index (PyPI)上发布的开源软件包,该包是`aws-cdk.aws-iot-actions`的一个版本,具体为`alpha-2.3.0a0`。PyPI是...
Struts 1.3.8 是 Apache Software Foundation 开发的 Web 应用程序框架 Struts 1.x 系列的最终版本。这个框架主要用于构建基于 Model-View-Controller(MVC)架构的 Java web 应用。Struts 1 在其生命周期中经历了多...