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(其中包含一个可以从财务模块转向到仓库模块的配置):
/ssh/demo3/caiwu.jsp /cangku caiwu?id=${id}
仓库模块配置文件cangku.xml:
/ssh/demo3/cangku.jsp
struts.xml配置(使用include标记导入多个配置文件):
3. 创建各模块使用的JSP文件
caiwu.jsp
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> 显示财务模块
cangku.jsp
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> 显示仓库模块
4. 调用
4.1 打开IE,输入:
结果如下:
4.2 打开IE,输入:
结果如下:
4.3 打开IE,输入:
结果如下:
4.4 上面三项输入的后台输出:
执行了财务统计模块
执行了仓库模块,传进来的id=0从财务模块中的财务转到了仓库中的财务,id=987执行了仓库模块,传进来的id=987