您好,登錄后才能下訂單哦!
動態方法就是一個Action對應多個請求,減少Action的數量
1、指定method屬性
<action name="addAction" method="add" class="com.venn.action.HelloWorldAction"> <result>/jsp/add.jsp</result> </action>
2、感嘆號(!)方式(不推薦使用)
<action name="HelloWorld" class="com.venn.action.HelloWorldAction"> <result>/jsp/test.jsp</result> <result name="add">/jsp/add.jsp</result> <result name="update">/jsp/update.jsp</result> </action>
需要在struts.xml中加入如下常量:
<constant name="struts.enable.DynamicMethodInvocation" value="true"></constant>(加在package標簽外面)
調用不同方法使用:
訪問execute方法: http://localhost:8080/TestStruts2/HelloWorld.action
訪問update方法: http://localhost:8080/TestStruts2/HelloWorld!update.action
訪問add方法 http://localhost:8080/TestStruts2/HelloWorld!add.action
3、通配符方式
Action配置:
<action name="HelloWorld_*" method="{1}" class="com.venn.action.HelloWorldAction"> <result>/jsp/test.jsp</result> <result name="add">/jsp/add.jsp</result> <result name="update">/jsp/update.jsp</result> </action>
訪問execute方法: http://localhost:8080/TestStruts2/HelloWorld.action 或http://localhost:8080/TestStruts2/HelloWorld_execute.action
訪問add方法 http://localhost:8080/TestStruts2/HelloWorld_add.action
注:為簡化struts.xml配置,可以將action配置為:
<action name="*_*_*" method="{2}" class="com.venn.{3}.{1}Action"> <result>/jsp/test.jsp</result> <result name="add">/jsp/{2}.jsp</result> <result name="update">/jsp/{2}.jsp</result> </action>
第一個*對應action,第二個*對應method
注意result標簽的name屬性不可以使用通配符
java類
public class HelloWorldAction extends ActionSupport { @Override public String execute() throws Exception { System.out.println("execute method"); return "success"; } public String add(){ System.err.println("add method"); return "add"; } public String update(){ System.out.println("update method"); return "update"; } }
總結
以上就是本文關于詳解Struts2動態方法調用的全部內容,希望對大家有所幫助。感興趣的朋友可以參閱:struts2開發流程及詳細配置 Struts2修改上傳文件大小限制方法解析等,有什么問題可以隨時留言,小編會盡快回復大家。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。