Struts2动态方法调用(DMI)的三种方法

Struts2学习笔记(3)-DMI动态调用方式 本文主要介绍Struts2的DMI动态调用的两种方式,简单实用,希望能给大家做一个参考。 立即下载

1.使用Action中的method属性

UserAction.java

package org.bigjava.web.action;

import com.opensymphony.xwork2.ActionSupport;

public class UserAction extends ActionSupport {

	public String login() throws Exception {
		return "login";
	}

}

struts.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">
<struts>

	<constant name="struts.devMode" value="true" />

	<package name="user" extends="struts-default" namespace="/">
		<action name="login" class="org.bigjava.web.action.UserAction"
			method="login">
			<result name="login">
				/welcome.jsp
			</result>
		</action>
	</package>
</struts>    

index.jsp

  <body>
	<a href="login.action">Login</a>
  </body>
<body>
This is welcome JSP page.
</body>

2.使用!调用(不推荐使用)

UserAction.java

package org.bigjava.web.action;

import com.opensymphony.xwork2.ActionSupport;

public class UserAction extends ActionSupport {
	public String add() throws Exception {
		return "add";
	}
	
	@Override
	public String execute() throws Exception {
		// TODO Auto-generated method stub
		return SUCCESS;
	}

}

struts.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">
<struts>

	<constant name="struts.devMode" value="true" />
	<!-- 开启动态调用 -->
	<constant name="struts.enable.DynamicMethodInvocation" value="true" />
	
	<package name="user" extends="struts-default" namespace="/">
		<action name="user" class="org.bigjava.web.action.UserAction" method="login">
			<result name="add">
				/add.jsp
			</result>
		</action>
	</package>
</struts>    

index.jsp

<body>
	<a href="user.action">Login</a><br />
	<a href="user!add">add</a>
  </body>

3.使用通配符(推荐使用)

UserAction.java

package org.bigjava.web.action;

import com.opensymphony.xwork2.ActionSupport;

public class UserAction extends ActionSupport {

	public String login() throws Exception {
		return "login";
	}
	
	public String update() throws Exception {
		return "update";
		
	}
	
	public String delete() throws Exception {
		return "delete";
	}
	
	public String add() throws Exception {
		return "add";
	}
	
}

struts.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">
<struts>

	<constant name="struts.devMode" value="true" />
	<!-- 开启动态调用 -->
	<constant name="struts.enable.DynamicMethodInvocation" value="true" />
	
	<package name="user" extends="struts-default" namespace="/">	
		<!--{1}表示第一个*,{2}表示第二个* -->
		<action name="*_*" class="org.bigjava.web.action.{1}" method="{2}">
			<result name="{2}">
				/{2}.jsp
			</result>
		</action>
	</package>
</struts>    

index.jsp

<body>
	<a href="UserAction_login">login</a>
	<a href="UserAction_add">add</a>
	<a href="UserAction_update">update</a>
	<a href="UserAction_delete">delete</a>
  </body>
算法策略 | MACD跨周期短线交易策略开发(股指+商品双版) 量化策略开发,高质量社群,交易思路分享等相关内容 阅读详情

相关推荐

【AI Infra】Perfetto性能分析工具指南

Perfetto是一款开源性能分析工具,提供系统级和应用级的活动数据追踪功能。其界面分为四个区域:左侧操作区(包含Trace查看、SQL查询、预置分析等功能)、上方信息区、中间图形化展示区以及下方详细信息区。工具支持快捷键操作(w/s缩放、a/d移动、m标记等),并能高效处理大体积Trace文件。通过Timeline分析可发现性能瓶颈,如案例中update_actor耗时过高的问题,最终定位到CPU offloading导致的MemcpyH2D操作耗时过长,提出了优化方案。Perfetto相比Systrac

baiweizeng的博客 1511

struts2配置文件-动态方法调用

Struts

huan1213858的博客 253

Pywinauto与Inspect.exe完美搭配:解决Windows应用UI自动化中的元素定位难题

本文详细介绍了如何将Pywinauto与Inspect.exe结合,以解决Windows应用UI自动化中的核心难题——元素定位。通过实战指南,阐述了如何利用Inspect.exe在UIA模式下精准侦察控件属性,并将这些信息转化为Pywinauto的稳健定位策略,从而高效自动化WPF、WinForms等现代框架构建的复杂桌面应用。

weixin_29297127的博客 520

第三篇——Struts2的动态方法调用

Struts2动态方法调用 默认方式:默认执行方法中的execute方法,若指定类中没有该方法,默认返回success; method方式:执行method属性中定义的方法,没有该方法,页面报错; 通配符方式:使用 * 作为通配符,若没有配置method,默认执行execute,若没有execute方法,默认返回suc...

a609344710的博客 261

基于Python的微信聊天记录分析——数据获取

本篇为“基于Python的微信聊天记录分析”第一篇,主要涉及数据获取,包括Python环境配置、WeChatMsg项目配置和运行、获取聊天记录等内容,流程简单、比较基础,后续这个系列会涉及基于Python的数据处理、统计分析、NLP技术等内容。希望和大家多多交流,共同进步!

Henryli1202的博客 1万+

基于STM32的PID恒温恒湿控制系统 | 保姆式教程 开源可复刻

本项目基于STM32F103C8T6核心控制器,完整实现了基于双路PID算法的恒温恒湿闭环控制系统,覆盖高精度温湿度采集、双模式控制、参数在线配置、异常安全保护、掉电记忆等全功能,全程采用无跳步保姆式教学,从硬件选型、接线、CubeMX配置、代码开发、调试排坑全流程拆解,跟着步骤一步步操作,就能顺利完成项目复刻

ZhongWeiXiang9的博客 347

STM32F407 RTC实战:除了秒中断,如何用CubeMX轻松实现一个带掉电保护的简易万年历?

本文详细介绍了如何使用STM32F407的RTC模块和CubeMX配置实现带掉电保护的简易万年历。从硬件准备、CubeMX基础配置到备份域与掉电保护机制,再到日历功能实现与BCD转换,全面解析了RTC模块的应用。特别强调了秒中断与日历更新策略,以及系统集成与性能优化的实用技巧,帮助开发者构建可靠的实时时钟系统。

weixin_30784501的博客 733

光通量与辐射通量之间的换算

由理论和实验可知存在两种定义: 1W1W1W(瓦特)的频率为540×1012Hz540\times10^{12}Hz540×1012Hz(赫兹)的单色辐射的辐射通量等于683lm(流明)683lm(流明)683lm(流明).。 1lm1lm1lm的频率为540×1012Hz540\times10^{12}Hz540×1012Hz的单色通量等于1683=0.001464W\frac{1}{683}=0.001464W6831​=0.001464W。 从上述定义中我们可以得到什么呢?我们知道光速: c=3×

u011699626的博客 3273

Struts2中使用DMI(动态方法调用)

Struts2中使用DMI(动态方法调用) Action执行的时候并不一定要执行execute方法, 可以在配置文件中配置Action的时候用method=来指定执行哪个方法------会产生太多的action,不推荐用, 也可以在url地址中动态指定(动态方法调用-DMI)------推荐 1.配置Action (method方式) url为:http://localh

尼古拉斯.张飞的博客 671

Winform从入门到精通(2)——Button(史上最全)

本文介绍winform中Button控件的详细用法,包括所有属性和事件

qq_34059233的博客 1万+

23、OpenMP常见用例与标准循环级示例详解

本文详细介绍了OpenMP的三种典型用例:循环级OpenMP、高级OpenMP和MPI+OpenMP,适用于不同层次的并行需求。重点讲解了循环级OpenMP在向量加法、流三元组和模板计算中的应用示例,并探讨了首次触摸优化、线程绑定、NUMA架构影响等关键性能优化策略。通过实际代码演示和性能分析,帮助开发者快速掌握OpenMP的基础并行化方法,并为后续高性能优化提供指导。

fanta的博客 87

struts2--动态方法调用的三种方式

一般情况下,我们是通过实现action中execute方法来实现请求处理,这样子一个action中就只能写一个方法,当我需要实现很多方法的时候写多个action显然是很不合理的,因此就需要使用动态调用来实现。方式一:指定method属性 也就是说通过在struts.xml文件中通过配置action标签的method属性来设置即可。 但是这个方法有一个缺陷,当一个action中有很多方法的时候就需

暖心~的博客 1万+

什么是信噪比?信噪比越大好还是越小好?

在进行声音增强的时候,往往需要考虑声音信号和噪声的信噪比,那么信噪比是什么呢?越大越好还是越小越好,此处引入百度百科的解读: 信噪比,英文名称叫做SNR或S/N(SIGNAL-NOISE RATIO),又称为讯噪比。是指一个电子设备或者电子系统中信号与噪声的比例。这里面的信号指的是来自设备外部需要通过这台设备进行处理的电子信号,噪声是指经过该设备后产生的原信号中并不存在的无规则的额外信号(或信息),并且该种信号并不随原信号的变化而变化。 同样是“原信号不存在”还有一种东西叫“失真”,失真和噪声实际上有一

码匀的博客 7万+

Struts2 url中包含感叹号实现动态方法调用

struts2 动态方法调用 感叹号! Struts2的动态方法调用(Dynamic method Invoc)概括起来有三种方式,下面介绍: 1、第一种方式:设置method属性 在Action类中定义一个签名与execute方法相同、只是名字不同的方法,如定义为: public String login() throws Exceptio

洪文聊架构 9783

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

Struts2方法调用的三种方式

在Struts2中方法调用概括起来主要有三种形式 第一种方式:指定method属性 第二种方式:动态方法调用(DMI) 第三种方式:通配符(推荐使用) Struts2支持动态方法调用,它指的是一个Action中有多个方法,系统根据表单元素给定的action来访问不同的方法,而不用写多个Action。

itmyhome的专栏 6509

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

struts2 动态方法调用

Struts2的动态方法调用(Dynamic method Invoc)概括起来有三种方式:   1、第一种方式:设置method属性 在Action类中定义一个签名与execute方法相同、只是名字不同的方法,如定义为: public String login() throws Exception{} 然后在struts.xml文件中加一个元素,并设置它

bkwzh_2008的博客 478

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

Struts2方法调用的三种方式(默认、多方法、通配符)

Struts2方法调用的三种方式(默认、多方法、通配符) 在Struts2中方法调用概括起来主要有三种形式 第一种方式:指定method属性       /success.jsp       这样Struts2就会调用Student 中的add方法。 第二种方式:动态方法调用(DMI) 用这种方法需要设置一个常量  动态方法调

shenghua 472

Struts2动态方法报错

在使用Struts2的2.5.12版本,在使用DMI(动态方法注入)的时候,总是报:HTTP Status 404 - There is no Action mapped for namespace [/] and action name [user!update] associated with context path [/M_Struts_1].type Status reportmessag

程序员Feri 1338

Struts2一个Action内包含多个请求处理方法的处理,method的使用方法,struts2中的路径问题,通配符映射

struts2的关于method=“{1}"意思详解 中Login_*带*是什么意思?method= "{1} "带{}这个是什么意思? ==================================================== name= "Login_* " 代表这个action处理所有以Login_开头的请求 method= "{1} " 根据前面请

yj_021219的专栏 1431

struts2之动态方法调用(DMI)

动态方法调用(DMI)      定义:动态方法调用是指表单元素的action并不是直接等于某个Action的名字,而是以action=“Action!methodName.action”形式来指定Form的action属性。    功能:在Struts2中动态方法调用有三种方式,动态方法调用就是为了解决一个Action对应多个请求的处理,以免Action太多。    注意:使用动态方法调用

RoundYuan 748

struts2 动态方法调用 感叹号!

Struts2的动态方法调用(Dynamic method Invoc)概括起来有三种方式,下面介绍: 1、第一种方式:设置method属性 在Action类中定义一个签名与execute方法相同、只是名字不同的方法,如定义为: public String login() throws Exception{} 然后在struts.xml文件中加一个元素,并设置它的method属性。代码如下

834

Struts2一个Action内包含多个请求处理方法的处理(三种方式)

Struts1提供了DispatchAction,从而允许一个Action内包含多个请求处理方法。Struts2也提供了类似的功能。处理方式主要有以下三种方式: 1.1. 动态方法调用: DMI:Dynamic Method Invocation 动态方法调用。 动态方法调用是指:表单元素的action不直接等于某个Action的名字,而是以如下形式来指定对应的动作名

Jston的专栏 1342

Struts.xml中Action的method与路径的三种匹配方法

首先我们有一个Action——UserAction public classUserActionextends ActionSupport { public String add() { return "add"; } public String modify() { ...

weixin_34024034的博客 93
上一篇: Struts2传参的三种方法
下一篇: Struts2DynamicResult动态接收结果集
BigJava026
博客等级 码龄8年 1粉丝 7原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值