1. 程式人生 > >Struts2 動態調用方法

Struts2 動態調用方法

style nal w3c 調用 page xtend 方式 doc java

struts2動態調用方法有兩種方式

方式一:用通配符進行調用:

Action方法:

 1 package com.bjyinfu.struts.actions;
 2 
 3 public class CatchDynamicMethod {
 4 
 5     public String doFirst(){
 6         System.out.println("執行doFirst方法");
 7         return "success";
 8     }
 9 
10     public String doSecond(){
11         System.out.println("執行doSecond方法");
12 return "success"; 13 } 14 }

Struts2中註冊方法:(註:method對應得是占位符從1開始,在提交請求的時候,*是什麽,method對應的就是什麽,也就是說提交請求的時候,*對應的應該是對應的方法名稱)

1 <struts>
2 
3   <package name="dynamic" namespace="/dynamic" extends="default">
4         <action name="execute_*" class="com.bjyinfu.struts.actions.CatchDynamicMethod" method="{1}">
5
<result name="success">/welcome01.jsp</result> 6 </action> 7 </package> 8 9 </struts>

展示頁面:

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

(方法一就是講通配符*換成方法名即可)

方法二:開啟常量設置實現動態調用方法:

再Struts2.xml配置文件中註冊方法的時候,將常量"struts.enable.DynamicMethodInvocation"開啟

1 <struts>
2   <constant name="struts.enable.DynamicMethodInvocation" value="true"/>
3     <package name="dynamic" namespace="/dynamic" extends="default">
4         <action name="execute" class="com.bjyinfu.struts.actions.CatchDynamicMethod">
5             <result name="success">/welcome01.jsp</result>        
6         </action>
7     </package>
8 </struts>

地址欄訪問的時候,http://127.0.0.1:8080/projectName/dynamic/execute!方法名.action

Struts2 動態調用方法