博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
struts2 DMI
阅读量:5100 次
发布时间:2019-06-13

本文共 2278 字,大约阅读时间需要 7 分钟。

     由于在struts 对象对URL请求的处理都是调用默认execute()方法,对于单一的业务请求这种方式比较合适.但在实际开发中业务请求类型方法多种多样,对一个Action可能有不同的请求,通过建立action能够解决这个问题,但会使程序变得越来越复杂,且编码越来越多,修一处可能动全身麻烦不容易维护.根据请求的数量不断增多这种方式显然不太合适.

   在struts2中提供了解决这类问题的方法,称之为DMI(动态调用).通过请求action对象的方法,可以实现对某一个业务逻辑处理.DMI处理方式是通过请求Aciton对象中的一个具体方法来实现动态操作.具体就是在请求action的url地址后加上请求的字符串,与aciton对象的方法进行匹配.其中action对象名称和方法之间用"!"区分开.下面以实例的方式进行说明.

例:配置环境变量请参照前面介绍的环境配置方法.

1. 在Eclipse中创建一个java web 项目名称为:Struts2DMIDemo,添加struts2支持库击开发库等.

建立文件包括:UserAction.java,struts.xml,web.xml,add.jsp,index.jsp,update.jsp文件.

Action类 UserAction.java 内容如下:

 

package com.northeasttycoon;import com.opensymphony.xwork2.ActionSupport;/** * @author NorthEastTycoon * */public class UserAction extends ActionSupport {	/**	 * 	 */	private static final long serialVersionUID = 1L;	private String info;	public String getInfo() {		return info;	}	public void setInfo(String info) {		this.info = info;	}		public String execute() throws Exception{				info ="this is add operator!";		return "sucess";	}	public String update() throws Exception{				info="this is update operator!";		return "update";	}	}

web.xml 文件内容如下:

 

Struts 2
index.jsp
struts2
org.apache.struts2.dispatcher.FilterDispatcher
struts2
/*

struts.xml 文件内容如下:

 

/add.jsp
/update.jsp

add.jsp 文件内容如下:

 

<%@ page contentType="text/html; charset=UTF-8" %><%@ taglib prefix="s" uri="/struts-tags" %>success 

 

 index.jsp 文件内容如下:

 

<%@ page contentType="text/html; charset=UTF-8" %><%@ taglib prefix="s" uri="/struts-tags" %>Hello World
sucess
update

 

 update.jsp内容如下:

<%@ page contentType="text/html; charset=UTF-8" %><%@ taglib prefix="s" uri="/struts-tags" %>update 

 

程序目录结构如下:

运行效果图:

(1) 在浏览器中输入:http://localhost:8080/Struts2DMIDemo 出现以下界面

 

 (2)点击sucess 进入以下界面

 

 (3)点击udpate 进入以下界面

 

以上为struts2动态调用实例.

 

备注:

    作者:东北大亨

    博客:                                           

版权为个人所有,欢迎大家转载;但转载时必须注明文章来源,且在文章开头明显处给明链接。

转载于:https://www.cnblogs.com/northeastTycoon/p/5618450.html

你可能感兴趣的文章
bzoj1798: [Ahoi2009]Seq 维护序列seq(线段树)
查看>>
day5
查看>>
Palindrome
查看>>
窗体中拖动panel,并且不会拖动至窗体外部程序实现方法。
查看>>
vb中从域名得到IP及从IP得到域名
查看>>
一步步跨过学习中一道道的坎
查看>>
RxJava入门优秀博客推荐
查看>>
基于Selenium2+Java的UI自动化(5) - 执行JavaScript脚本
查看>>
bc https://en.wikipedia.org/wiki/Gossip_protocol
查看>>
saltstack---自动化运维平台
查看>>
Java注释@interface的用法【转】
查看>>
妙味——操作元素属性的几种方法
查看>>
Ring 0 Inline Hook
查看>>
Linux man C++ 库函数
查看>>
PE结构对照表
查看>>
复杂性渐近阶的重要性
查看>>
Rectangle and Square(判断正方形、矩形)
查看>>
js数组创建两种方法
查看>>
IOS自得其乐系列(一)-------------------加载动态图片
查看>>
Function Spec
查看>>