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

结果如下:

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

结果如下:

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

结果如下:

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

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

struts2:多业务方法的处理(动态调用,DMI)的更多相关文章

  1. Struts2动态调用DMI及错误解决方法

    在Strust2中action可以定义自己的方法,调用方法有两种方式,一种方式是struts.xml中指定method来表示需要用到的方法, 但是这种方法缺点在于如果你的Action中有很多方法则要多 ...

  2. Java父类对象调用子类实体:方法重写与动态调用

    众所周知Java的handle和C++的ponter而不是object对应,我们很熟悉C++的父类pointer调用子类实体的例子,那么对于Java的handle是不是也可以这样呢? 这里我先给一个例 ...

  3. struts配置通配符*来匹配方法,实现动态调用

    01:web.xml中配置,启动struts2 <?xml version="1.0" encoding="UTF-8"?> <web-app ...

  4. struts2.5+框架使用通配符与动态方法

    概述:struts2.5以后加强了安全性,下面就是安全配置引发的问题 通配符: 在学习struts框架时经常会使用到通配符调用方法,如下: <package name="usercru ...

  5. 利用C#的反射机制动态调用DLL类库

    最近由于业务要求,需要动态调用DLL类库,所以研究了一下,感觉还好也不太难,今天就把自己理解的写了一个小例子(已经通过VS2005跑通),供大家一起研究和探讨,有理解不当的地方还请高手们多多指正,谢谢 ...

  6. C#程序实现动态调用DLL的研究(转)

    摘 要:在<csdn开发高手>2004年第03期中的<化功大法——将DLL嵌入EXE>一文,介绍了如何把一个动态链接库作为一个资源嵌入到可执行文件,在可执行文件运行时,自动从资 ...

  7. C#程序实现动态调用DLL的研究[转]

    摘   要: 在< csdn 开发高手> 2004 年第 03 期中的<化功大法——将 DLL 嵌入 EXE >一文,介绍了如何把一个动态链接库作为一个资源嵌入到可执行文件,在 ...

  8. C#程序实现动态调用DLL的研究

    摘 要:在<csdn开发高手>2004年第03期中的<化功大法——将DLL嵌入EXE>一文,介绍了如何把一个动态链接库作为一个资源嵌入到可执行文件,在可执行文件运行时,自动从资 ...

  9. 转【C#调用DLL的几种方法,包括C#调用C\C++\C#DLL】

    C#中dll调用方法   一.      DLL与应用程序 动态链接库(也称为DLL,即为“Dynamic Link Library”的缩写)是Microsoft Windows最重要的组成要素之一, ...

随机推荐

  1. 【Java】 剑指offer(41) 数据流中的中位数

    本文参考自<剑指offer>一书,代码采用Java语言. 更多:<剑指Offer>Java实现合集   题目 如何得到一个数据流中的中位数?如果从数据流中读出奇数个数值,那么中 ...

  2. java爬虫抓取腾讯漫画评论

    package com.eteclab.wodm.utils; import java.io.BufferedWriter; import java.io.File; import java.io.F ...

  3. html5 选择多张图片在页面内预览并上传到后台

    版权声明:本文为博主原创文章,未经博主允许不得转载. http://blog.csdn.net/huangxin112/article/details/74956462 需求:点击选择图片(可选多张) ...

  4. CentOS root用户修改密码

    1.root用户修改密码: #passwd -------------------------------- 参考资料: 1.Centos修改root密码:http://blog.163.com/wz ...

  5. centos关机、重启、图形界面与命令行界面切换命令

    1.关机: init0;  poweroff;  halt;  shutdown 2.重启: init1;  reboot; 3.图形界面切换到命令行界面: init3; 或者,修改配置文件: #vi ...

  6. python的常用模块之collections模块

    python的常用模块之collections模块 python全栈开发,模块,collections 认识模块 什么是模块?    常见的场景:一个模块就是一个包含了python定义和声明的文件,文 ...

  7. CocosCreator原生平台退出游戏,暂停和继续

    原生平台退出游戏,方法为:cc.director.end();官方解释:End the life of director in the next frame暂停游戏,方法: cc.director.p ...

  8. 封装PHP验证码方法

    /** * 生成验证码 * @param integer $width 图片宽度 * @param integer $height 图片高度 * @param string $type 验证码类型 * ...

  9. 使用 IntraWeb (37) - TIWApplication

    每个访问用户都会拥有一个它的实例(WebApplication), 它除了承载 Session(会话)数据, 还要记忆着用户的浏览器信息.登陆信息等等; 另外, 窗体的建立也都依附(Owner)于它, ...

  10. Jenkins配置基于角色的项目权限管理

    转自: http://www.cnblogs.com/gao241/archive/2013/03/20/2971416.html, 版权归原作者. 本文将介绍如何配置jenkins,使其可以支持基于 ...