struts2:多业务方法的处理(动态调用,DMI)详解编程语言

struts2支持调用指定Action类中某一个业务方法。如果没有指定,则调用execute方法。

1. 第一种实现方式,通过URL叹号参数

1.1 创建Action类,带多个方法

package com.clzhang.ssh.demo4; 
 
public class ListAction { 
    public String listUser() { 
        System.out.println("列出员工信息"); 
        return "user"; 
    } 
 
    public String listSalarySum() { 
        System.out.println("列出员工总工资信息"); 
        return "sum"; 
    } 
 
    public String execute() { 
        System.out.println("执行了execute方法"); 
        return "default"; 
    } 
}

1.2 配置文件如下

<?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="myStruts" extends="struts-default"> 
        <global-results> 
            <result name="user">/ssh/demo4/user.jsp</result> 
            <result name="sum">/ssh/demo4/sum.jsp</result> 
            <result name="default">/ssh/demo4/default.jsp</result> 
        </global-results> 
 
        <action name="list" class="com.clzhang.ssh.demo4.ListAction"> 
        </action> 
    </package> 
 
    <constant name="struts.action.extension" value="action"></constant> 
</struts>

上述配置文件中使用了全局result,只需配置一次,其它任何地方用到此配置的都不需要再行配置。

1.3 各JSP文件如下

user.jsp

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> 
 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 
<html> 
    <body> 
        员工列表 
    </body> 
</html>

sum.jsp

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> 
 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 
<html> 
    <body> 
        总工资列表 
    </body> 
</html>

default.jsp

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> 
 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 
<html> 
    <body> 
        默认的execute()语句 
    </body> 
</html>

1.4 调用

1.4.1 打开IE,输入:http://127.0.0.1:8080/st/ssh/list.action

结果如下:

struts2:多业务方法的处理(动态调用,DMI)详解编程语言

1.4.2 打开IE,输入:http://127.0.0.1:8080/st/ssh/list!listUser.action

结果如下:

struts2:多业务方法的处理(动态调用,DMI)详解编程语言

2. 第二种实现方式,在Action标记中加入method属性

2.1 创建类,同上

2.2 配置文件如下

<?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="myStruts" extends="struts-default"> 
        <global-results> 
            <result name="user">/ssh/demo4/user.jsp</result> 
            <result name="sum">/ssh/demo4/sum.jsp</result> 
            <result name="default">/ssh/demo4/default.jsp</result> 
        </global-results> 
 
        <action name="listSalarySum" class="com.clzhang.ssh.demo4.ListAction" method="listSalarySum"> 
        </action> 
 
        <action name="listUser" class="com.clzhang.ssh.demo4.ListAction" method="listUser"> 
        </action> 
    </package> 
 
    <constant name="struts.action.extension" value="action"></constant> 
</struts>

2.3 各JSP文件同上

2.4 测试

2.4.1 打开IE,输入:http://127.0.0.1:8080/st/ssh/listSalarySum.action

结果如下:

struts2:多业务方法的处理(动态调用,DMI)详解编程语言

3. 第三种实现方式,在表单提交按钮中加入method属性

参考struts2:数据校验,通过Action中的validate()方法实现校验(续:多业务方法时的不同验证处理)

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/tech/pnotes/7967.html

(0)
上一篇 2021年7月18日 19:15
下一篇 2021年7月18日 19:15

相关推荐

发表回复

登录后才能评论