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. 安装了XAMPP,PHP怎么显示中文

    1.输出前加文件头.header("Content-type: text/html; charset=utf-8"); 另外注意你的文件编码要和 charset一致. 2. 可能是 ...

  2. ES6学习笔记十:模块的导入、导出

    一:模块导入 1) import { 要导入的属性.方法民 } from '模块路径'; 2)该种方法需要有配置文件,指明模块所在路径 import { 要导入的属性.方法民 } from '模块名' ...

  3. 腾讯云ubuntu安装Mysql并配置远程访问

    转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/6378914.html 一:修改SSH配置 输入 su 进入root模式.修改ssh配置: sudo vi /e ...

  4. Linux中wget用法

    Wget简介:Linux系统中wget是一个下载文件的工具,它用在命令行下.对于Linux用户是必不可少的工具,我们经常要下载一些软件或从远程服务器恢复备份到本地服务器.wget支持HTTP,HTTP ...

  5. Leveldb 使用说明文档

    Leveldb 使用说明文档 原作者:Jeff Dean, Sanjay Ghemawat 翻译:乌合之众solym@sohu.com 英文原文地址https://rawgit.com/google/ ...

  6. 如何用命令行执行loadrunner的脚本

    SET M_ROOT=D:\Mercury Interactive\Mercury LoadRunner\bin cd %M_ROOT% wlrun.exe -TestPath D:\ceshi10\ ...

  7. Libevent例子(一)

    服务器端 #include<stdio.h> #include<string.h> #include<errno.h> #include<event.h> ...

  8. 自己开发Visual studio插件-一个nvelocity高亮插件

    首先,有一个项目用到了nvelocity模板引擎,但是用vs开发模板的时候,没有高亮效果,所以非常不方便,鉴于这个,于是有了自己开发插件的念头,但是在vs sdk开发上面,这方面的资料真是少之又少,网 ...

  9. Redis-Redi事务注意事项

    当客户端处于非事务状态下时, 所有发送给服务器端的命令都会立即被服务器执行.但是, 当客户端进入事务状态之后, 服务器在收到来自客户端的命令时, 不会立即执行命令, 而是将这些命令全部放进一个事务队列 ...

  10. 树莓派SD卡制作,并成功启动

    需要条件: 硬件部分: 1.SD卡一张(树莓派支持的) 2.树莓派3 B + 一个(其他的版本也是可以的,这里默3B+). 1.下载树莓派镜像(NOOBS_v1_9_2.zip) wget http: ...