struts2支持多模块多配置文件开发。下面是一个仅包含两个模块的示范程序,包括财务、仓库模块。它们都有一个“caiwu“的Action,在各自的命名空间下;还有一个从财务转向到仓库的Action。

1. 创建模块的控制层

财务模块:

package com.clzhang.ssh.demo3;

// 财务类
public class CaiwuAction { public String execute() {
System.out.println("执行了财务统计模块"); return "toCaiwu";
}
}

仓库模块:

package com.clzhang.ssh.demo3;

// 仓库类
public class CangkuAction {
//属性id的作用是在重定向的过程中传递参数
private int id; public int getId() {
return id;
} public void setId(int id) {
this.id = id;
} public String execute() {
System.out.println("执行了仓库模块,传进来的id=" + id); return "toCangku";
}
}

从财务模块转向到仓库模块(带参数):

package com.clzhang.ssh.demo3;

// 不同模块之间的重定向操作
public class FromCaiwu2CangkuAction {
//属性id的作用是在重定向的过程中传递参数
private int id; public int getId() {
return id;
} public void setId(int id) {
this.id = id;
} public String execute() {
id = 999;
System.out.println("从财务模块中的财务转到了仓库中的财务"); return "gotoCangku";
}
}

2. 创建配置文件

财务模块配置文件caiwu.xml(其中包含一个可以从财务模块转向到仓库模块的配置):

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd"> <struts>
<package name="caiwu" extends="struts-default" namespace="/caiwu">
<action name="caiwu" class="com.clzhang.ssh.demo3.CaiwuAction">
<result name="toCaiwu">/ssh/demo3/caiwu.jsp</result>
</action> <action name="fromcaiwu2cangku"
class="com.clzhang.ssh.demo3.FromCaiwu2CangkuAction">
<result name="gotoCangku"
type="redirectAction">
<param name="namespace">/cangku</param>
<param name="actionName">caiwu?id=${id}</param>
</result>
</action>
</package>
</struts>

仓库模块配置文件cangku.xml:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
<package name="cangku" extends="struts-default" namespace="/cangku">
<action name="caiwu" class="com.clzhang.ssh.demo3.CangkuAction">
<result name="toCangku">/ssh/demo3/cangku.jsp</result>
</action>
</package>
</struts>

struts.xml配置(使用include标记导入多个配置文件):

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd"> <struts>
<include file="caiwu.xml"></include>
<include file="cangku.xml"></include> <constant name="struts.action.extension" value="action"></constant>
</struts>

3. 创建各模块使用的JSP文件

caiwu.jsp

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<body>
显示财务模块
</body>
</html>

cangku.jsp

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<body>
显示仓库模块
</body>
</html>

4. 调用

4.1 打开IE,输入:http://127.0.0.1:8080/st/caiwu/caiwu.action

结果如下:

4.2 打开IE,输入:http://127.0.0.1:8080/st/cangku/caiwu.action

结果如下:

4.3 打开IE,输入:http://127.0.0.1:8080/st/caiwu/fromcaiwu2cangku.action?id=987

结果如下:

4.4 上面三项输入的后台输出:

执行了财务统计模块
执行了仓库模块,传进来的id=0
从财务模块中的财务转到了仓库中的财务,id=987
执行了仓库模块,传进来的id=987

struts2:多模块多配置文件开发的更多相关文章

  1. Struts2分模块开发

    -------------------siwuxie095 Struts2 分模块开发 在实际开发中,如果一个项目是团队开发的,也就是很多人开发的, 每个人都需要去修改 struts.xml,因为 s ...

  2. struts2中struts.xml配置文件详解【未整理】

    1.    深入Struts2的配置文件 本部分主要介绍struts.xml的常用配置. 1.1.    包配置: Struts2框架中核心组件就是Action.拦截器等,Struts2框架使用包来管 ...

  3. 使用Maven搭建Struts2+Spring3+Hibernate4的整合开发环境

    做了三年多的JavaEE开发了,在平时的JavaEE开发中,为了能够用最快的速度开发项目,一般都会选择使用Struts2,SpringMVC,Spring,Hibernate,MyBatis这些开源框 ...

  4. Python自动化测试 -ConfigParser模块读写配置文件

    C#之所以容易让人感兴趣,是因为安装完Visual Studio, 就可以很简单的直接写程序了,不需要做如何配置. 对新手来说,这是非常好的“初体验”, 会激发初学者的自信和兴趣. 而有些语言的开发环 ...

  5. py 包和模块,软件开发目录规范

    目录 py 包和模块,软件开发目录规范 什么是包? 什么是模块? 软件开发目录规范 py 包和模块,软件开发目录规范 什么是包? 包指的是内部包__init__.py的文件夹 包的作用: 存放模块,包 ...

  6. 用ConfigParser模块读写配置文件——Python

    对于功能较多.考虑用户体验的程序,配置功能是必不可少的,如何存储程序的各种配置? 1)可以用全局变量,不过全局变量具有易失性,程序崩溃或者关闭之后配置就没了,再者配置太多,将变量分配到哪里也是需要考虑 ...

  7. python:实例化configparser模块读写配置文件

    之前的博客介绍过利用python的configparser模块读写配置文件的基础用法,这篇博客,介绍下如何实例化,方便作为公共类调用. 实例化的好处有很多,既方便调用,又降低了脚本的维护成本,而且提高 ...

  8. python:利用configparser模块读写配置文件

    在自动化测试过程中,为了提高脚本的可读性和降低维护成本,将一些通用信息写入配置文件,将重复使用的方法写成公共模块进行封装,使用时候直接调用即可. 这篇博客,介绍下python中利用configpars ...

  9. Winform开发框架之通用附件管理模块 --SNF快速开发平台3.3-Spring.Net.Framework

    最近项目太多都没有时间写文章了,实际项目需求一,CS端和windows平板都需要附件上传管理功能.以前做的都是BS的附件管理和上传功能.本来计划在Winform上嵌套一个浏览器直接用bs的附件上传功能 ...

随机推荐

  1. Webwork【05】请求跳转前 xwork.xml 的读取

    个人理解 WebWork 与 Struts2 都是将xml配置文件作为 Controler 跳转的基本依据,WebWork 跳转 Action 前 xml 文件的读取依赖 xwork-1.0.jar, ...

  2. Java泛型的PECS原则

    1.什么是PESC ? PESC  = producer-extens , consumer -super. 如果参数化类型表示一个 T 生产者,就使用 <? extends T>: 如果 ...

  3. 【Linux】找出文件之间的差异

    使用命令comm可以找出2个文件之间的差异 现在有文件如下: Linux:/qinys # cat A.txt apple lemon onion orange pear Linux:/qinys # ...

  4. \G 用法:查询结果按列打印

    \G 用法:查询结果按列打印 \G 放到sql语句后,可以使每个字段打印到单独的行, 如: mysql \G; mysql> select * from t \G;*************** ...

  5. 如何在cmd命令下运行python脚本

    1.打开cmd窗口,输入:cd c:\\python27  (首先得确认python已加入环境变量) 2.第二条命令:python[空格]完整的python脚本路径,运行即可 3.一个案例: Micr ...

  6. oracle初始化化表空间用户权限

    oracle单实例安装完毕,需要初始化表空间.用户.等信息.不积跬步,何以至千里! 用sys账户登录oracle数据库,以此来完成所有操作! 01.创建临时表空间 create temporary t ...

  7. BOM介绍

    BOM 浏览器对象模型 BOM (Browser Object Model,浏览器对象模型)提供了通过 JavaScript 访问和控制浏览器窗口(window).显示器(screen)与浏览历史(h ...

  8. 【原创视频教程】XSL视频教程[共9集]

    这些视频都是13年-14年两年里面录制的,怀着一份创造之心, 可能说得不对,或者说得肤浅,望见谅....也请指正... 谢谢你的支持.. 更多资料:北盟网 www.bamn.cn ---------- ...

  9. iOS手势的综合运用

    //自定义一个VIEW封装手势功能 // CustormView.m // gesterDemoo // // Created by ganchaobo on 13-7-13. // Copyrigh ...

  10. du命令解决linux磁盘空间满的问题(很不错的哦)

    首先你要确定是不是真正的是因为数据空间占满磁盘,经常是因为某个程序的日志占满了空间.当发现磁盘满了以后不要着急,使用以下命令从根目录开始排除查找哪个文件夹最大: du --max-depth=1 找到 ...