zoukankan      html  css  js  c++  java
  • struts2:多模块多配置文件开发

    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

  • 相关阅读:
    单链表反转非递归
    Java中boolean类型到底占用多少个字节
    多线程,计算List<Integer>
    es聚合操作
    字符串压缩
    dart effective-风格和文档
    dart effective-用法
    node 安装
    Rabbitmq 报错信息
    rabbitmq 工作模式
  • 原文地址:https://www.cnblogs.com/nayitian/p/3458969.html
Copyright © 2011-2022 走看看