Struts2 動態調用方法
阿新 • • 發佈:2017-07-28
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 動態調用方法