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
结果如下:
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)的更多相关文章
- Struts2动态调用DMI及错误解决方法
在Strust2中action可以定义自己的方法,调用方法有两种方式,一种方式是struts.xml中指定method来表示需要用到的方法, 但是这种方法缺点在于如果你的Action中有很多方法则要多 ...
- Java父类对象调用子类实体:方法重写与动态调用
众所周知Java的handle和C++的ponter而不是object对应,我们很熟悉C++的父类pointer调用子类实体的例子,那么对于Java的handle是不是也可以这样呢? 这里我先给一个例 ...
- struts配置通配符*来匹配方法,实现动态调用
01:web.xml中配置,启动struts2 <?xml version="1.0" encoding="UTF-8"?> <web-app ...
- struts2.5+框架使用通配符与动态方法
概述:struts2.5以后加强了安全性,下面就是安全配置引发的问题 通配符: 在学习struts框架时经常会使用到通配符调用方法,如下: <package name="usercru ...
- 利用C#的反射机制动态调用DLL类库
最近由于业务要求,需要动态调用DLL类库,所以研究了一下,感觉还好也不太难,今天就把自己理解的写了一个小例子(已经通过VS2005跑通),供大家一起研究和探讨,有理解不当的地方还请高手们多多指正,谢谢 ...
- C#程序实现动态调用DLL的研究(转)
摘 要:在<csdn开发高手>2004年第03期中的<化功大法——将DLL嵌入EXE>一文,介绍了如何把一个动态链接库作为一个资源嵌入到可执行文件,在可执行文件运行时,自动从资 ...
- C#程序实现动态调用DLL的研究[转]
摘 要: 在< csdn 开发高手> 2004 年第 03 期中的<化功大法——将 DLL 嵌入 EXE >一文,介绍了如何把一个动态链接库作为一个资源嵌入到可执行文件,在 ...
- C#程序实现动态调用DLL的研究
摘 要:在<csdn开发高手>2004年第03期中的<化功大法——将DLL嵌入EXE>一文,介绍了如何把一个动态链接库作为一个资源嵌入到可执行文件,在可执行文件运行时,自动从资 ...
- 转【C#调用DLL的几种方法,包括C#调用C\C++\C#DLL】
C#中dll调用方法 一. DLL与应用程序 动态链接库(也称为DLL,即为“Dynamic Link Library”的缩写)是Microsoft Windows最重要的组成要素之一, ...
随机推荐
- IPython3 notebook 成功配置Python2和Python3内核(Kernel)
1.首先通过python3的pip3安装ipython sudo pip3 install ipython 2.安装python 内核 python2: sudo pip2 install ipyke ...
- springboot mail+Thymeleaf模板
compile 'org.springframework.boot:spring-boot-starter-thymeleaf' compile 'io.ratpack:ratpack-thymele ...
- python有序字典OrderedDict()
转python创建有序字典OrderedDict # -*- coding:utf-8 -*- """ python有序字典 需导入模块collections " ...
- SQLserver 新用户的创建以及权限的给与
我们有时在装sql server 2008或者2012的时候,发现在装的时候,忘记设置sa用户的密码了,其实sa用户是sql server自带的用户,所以我们在装数据库的时候只需要设置一个密码就可以了 ...
- C#通用数据库操作类
- 洛谷.2590.[ZJOI2008]树的统计(树分块)
题目链接 Update:这种分块写法...可以被卡掉啊... 好像没有靠谱的树分块写法... /* 对树上节点进行分块,每个点记录dep,fa,val,Max,Sum,Max,Sum表示当前点在该块内 ...
- 利用java编写的盲注脚本
之前在网上见到一个盲注的题目,正好闲来无事,便用java写了个盲注脚本,并记录下过程中的坑 题目源码: <?php header("Content-Type: text/html;ch ...
- [BZOJ3674]可持久化并查集加强版&[BZOJ3673]可持久化并查集 by zky
思路: 用主席树维护并查集森林,每次连接时新增结点. 似乎并不需要启发式合并,我随随便便写了一个就跑到了3674第一页?3673是这题的弱化版,本来写个暴力就能过,现在借用加强版的代码(去掉异或),直 ...
- Centos7安装Redis 3.2.8
关闭防火墙和SELinx 关闭防火墙 [root@node1 ~]# systemctl stop firewalld 开启防火墙 [root@node1 ~]# systemctl enable f ...
- 目标(web前端)
在学习web前端开发技术之前,对该课程的了解并不多,目标就是好好认真学习该课程的每一点知识,并好好掌握它.老师说该课程的内容比较多而且繁杂,那我希望我可以在今后的学习中有耐心的学好该门课程.