struts_2_Action类中方法的动态调用

(一)直接调用方法(不推荐使用)

1)Action类:

private String savePath;

	public String getSavePath() {
		return savePath;
	}

	public void setSavePath(String savePath) {
		this.savePath = savePath;
	}

	public String other() {
		savePath = "other";
		return "success";
	}

	public String execute() {
		savePath = "execute";
		return "success";
}

2)struts.xml文件的配置:

<struts>
	<package name="package" namespace="/test"
  extends="struts-default">
		<action name="emp" class="struts.employeeAction"
  method="execute">
			<result name="success">/index.jsp</result>
		</action>
	</package>
</struts>

当输入:http://localhost:8080/Struts_3/test/emp.action

时会输出:execute 即调用execute()方法;

当输入:http://localhost:8080/Struts_3/test/emp!other.action

时会输出:other 即调用other()方法。

(二)使用通配符(推荐使用)

1)Aciton类与(一)中的相同

2)struts.xml文件的配置:

<struts>
	<package name="package" namespace="/test"
  extends="struts-default">
		<action name="emp*" class="struts.employeeAction"
  method="{1}">
			<result name="success">/index.jsp</result>
		</action>
	</package>
</struts>

访问路径:http://localhost:8080/Struts_3/test/empexecute

这时会输出:execute 即调用execute()方法;

访问路径:http://localhost:8080/Struts_3/test/empother

这时会输出:other 即调用other()方法。

struts_2_Action类中方法的动态调用

时间: 2025-01-31 01:56:14

struts_2_Action类中方法的动态调用的相关文章

struts2学习笔记之八:Action中方法的动态调用

方法一:action名称+!+方法名称+后缀 Action类中增加addUser()和delUser()方法, package com.djoker.struts2; import org.apache.struts2.ServletActionContext; import com.opensymphony.xwork2.Action; public class UserAction { private String username; private String password; pri

C#中事件的动态调用实现方法

本文实例讲述了C#动态调用事件的方法.一般来说,传统的思路是,通过Reflection.EventInfo获得事件的信息,然后使用GetRaiseMethod方法获得事件被触发后调用的方法,再使用MethodInfo.Invoke来调用以实现事件的动态调用. 但是很不幸的,Reflection.EventInfo.GetRaiseMethod方法始终返回null.这是因为,C#编译器在编译并处理由event关键字定义的事件时,根本不会去产生有关RaiseMethod的元数据信息,因此GetRai

C#反射调用程序集类中方法

建立类 class OperatorClass { /// <summary> /// 加法 /// </summary> /// <param name="x"></param> /// <param name="y"></param> /// <returns></returns> /// public static int Add(int x, int y) { r

《同一个类中不同方法之间的调用相关问题(省略的类名或者this)》

1 //同一个类中不同方法之间的调用相关问题(省略的类名或者this) 2 class A 3 { 4 public void B() 5 { 6 System.out.println("b方法运行"); 7 } 8 public void C() 9 { 10 B();//下面引用<疯狂Java讲义>中的一段话. 11 /* 12 因为Java里的方法不能独立存在,它必须属于一个类或一个对象, 13 因此方法也不能直接像函数那样被独立执行,执行方法时必须使用 14 类或对

Struts2中Action的动态调用方法

在Struts2中,Action执行的时候并不一定要执行execute,我们可以指定Action执行哪个方法,下面分别介绍三种方法来指定Action执行哪个方法: 1.第一种方法,通过Action里的method属性指定执行方法,我们可以在struts.xml配置文件中配置Action的时候用method="   " 来指定执行的哪个方法. (1).接下来附上一个例子,通过第一种方法来指定执行方法,首先,复制一个已经搭建好struts2环境的web项目,这里我们复制ActionTest

android开发中关于继承activity类中方法的调用

android开发中关于继承activity类中的函数,不能在其他类中调用其方法. MainActivity.java package com.example.testmain; import android.app.Activity; import android.os.Bundle; public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState)

关于一个类中方法的调用

大家都知道:对象是对客观事物的抽象,类是对对象的抽象,对象是类的实例. 在类中来调用方法.不过调用方法也有种种的情况.(如下几种情况) 情况一:同一个类中的两个方法相互调用 1.如果两个方法都是普通的方法,也就是非静态的方法的话,是可以直接调用的.例 ( public void a(){ system.out.println(“内容”): b(): } public void b(){ system.out.println(“内容2”): } ) 2.如果两个方法都是静态的方法,那么也是可以直接

关于类中方法的调用

同一个类中的两个方法相互调用: 1.两种方法都是普通的方法:可以直接用方法名调用 2.两种方法都是静态方法:可以直接用方法名调用 3.一种方法为静态,一种方法为普通: ①在静态方法中调用普通方法:不可以直接使用,需要创建对象 ②在普通方法中调用静态方法:可以直接用方法名调用

关于一个类中方法调用

大家都知道:对象是对客观事物的抽象,类是对对象的抽象,对象是类的实例. 在类中来调用方法,不过调用方法也有种种的情况. 在同一个类中的两个方法相互调用; 1.如果两个方法都是普通方法,那么可以直接用 public void eat(){ System.out.println("内容1"); sleep(); } public void sleep(){ System.out.println("内容2"); } 2.如果两个方法都是静态方法,那么可以直接用 publi