Struts2 动态调用方法

struts2动态调用方法有两种方式

方式一:用通配符进行调用:

Action方法:

 package com.bjyinfu.struts.actions;

 public class CatchDynamicMethod {

     public String doFirst(){
System.out.println("执行doFirst方法");
return "success";
} public String doSecond(){
System.out.println("执行doSecond方法");
return "success";
}
}

Struts2中注册方法:(注:method对应得是占位符从1开始,在提交请求的时候,*是什么,method对应的就是什么,也就是说提交请求的时候,*对应的应该是对应的方法名称)

 <struts>

   <package name="dynamic" namespace="/dynamic" extends="default">
<action name="execute_*" class="com.bjyinfu.struts.actions.CatchDynamicMethod" method="{1}">
<result name="success">/welcome01.jsp</result>
</action>
</package> </struts>

展示页面:

 <%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>My First Struts2 Project</title>
</head>
<body>
welcome01 page
</body>
</html>

(方法一就是讲通配符*换成方法名即可)

方法二:开启常量设置实现动态调用方法:

再Struts2.xml配置文件中注册方法的时候,将常量"struts.enable.DynamicMethodInvocation"开启

 <struts>
  <constant name="struts.enable.DynamicMethodInvocation" value="true"/>
<package name="dynamic" namespace="/dynamic" extends="default">
<action name="execute" class="com.bjyinfu.struts.actions.CatchDynamicMethod">
<result name="success">/welcome01.jsp</result>
</action>
</package>
</struts>

地址栏访问的时候,http://127.0.0.1:8080/projectName/dynamic/execute!方法名.action

上一篇:如何使用visual basic 6中的java类?


下一篇:Unity——日志打印工具