日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

struts2-通配符和动态方法调用

發布時間:2023/12/2 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 struts2-通配符和动态方法调用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

通配符舉例--BookAction

1 public class BookAction extends ActionSupport { 2 3 public String execute() throws Exception { 4 System.out.println("BookAction ********** execute()"); 5 return null; 6 } 7 /* 8 * 顯示圖書添加頁面 9 */ 10 public String add(){ 11 System.out.println("顯示圖書添加頁面"); 12 return "add"; 13 } 14 }

通配符舉例--struts-pattern.xml

1 <struts> 2 <package name="pattern" namespace="/pattern" extends="struts-default"> 3 4 <!-- method:指定執行調用action中的方法,如果不加該屬性,默認調用action中的execute()方法 --> 5 6 <action name="BookAction" class="cn.itcast.pattern.BookAction" method="add"> 7 <result name="add">/pattern/BookAction.jsp</result> 8 </action> 9 </package> 10 </struts>

?

通配符舉例—BookAction如何自定義方法

在action中增加新的方法的要求:

? 方法最好要用public修飾 ? 方法的名稱自定義 ? 方法沒有參數 ? 方法的返回值為String

要定義的方法就是與execute方法的方法名稱不同,其他的都一樣,只有這樣的定義方法struts2才識別

?

?

?

?

?

?

通配符映射

  

動態方法調用-這種方式不常用

?動態方法調用: 通過 url 動態調用 Action 中的方法

  如果Action中存在多個方法時,我們可以使用!+方法名調用指定方法

?默認情況下, Struts 的動態方法調用處于激活狀態, 若想禁用該功能, 則可以在 struts.xml 文件中添加如下 constant 元素:

  <constant name="struts.enable.DynamicMethodInvocation" value="false"/>

  Jsp頁面的代碼:

1 動態方法調用!形式:<br> 2 <a href="${pageContext.request.contextPath}/pattern/BookAction!add.action">圖書添加</a><br> 3 <a href="${pageContext.request.contextPath}/pattern/BookAction!delete.action">圖書刪除</a><br>

?

?

Action代碼:

1 import com.opensymphony.xwork2.ActionSupport; 2 3 @SuppressWarnings("serial") 4 public class BookAction extends ActionSupport { 5 public String add(){ 6 System.out.println("BookAction...add()"); 7 return "add"; 8 } 9 public String delete(){ 10 System.out.println("BookAction...delete()"); 11 return "success"; 12 } 13 }

  Action配置:

1 <action name="BookAction" class="cn.zengfansheng.struts.pattern.BookAction"> 2 <result name="add">/pattern/BookAction.jsp</result> 3 <result name="success">/pattern/success.jsp</result> 4 </action>

?

使用通配符定義action-相對于動態方法調用,開發中比較常用這種方式調用action中的方法

  jsp頁面代碼:

1 動態方法調用!形式:<br> 2 <a href="${pageContext.request.contextPath}/pattern/BookAction!add.action">圖書添加</a><br> 3 <a href="${pageContext.request.contextPath}/pattern/BookAction!delete.action">圖書刪除</a><br>

  Action配置:

1 <action name="*_*" class="cn.zengfansheng.struts.pattern.{1}" method="{2}"> 2 <result name="add">/pattern/{1}.jsp</result> 3 <result name="success"> 4 <param name="location">/pattern/success.jsp</param> 5 </result> 6 </action>

全局結果

  當多個action中都使用到了相同result,這時我們應該把result定義為全局結果

1 <package ....> 2 <global-results> 3 <result name="message">/message.jsp</result> 4 </global-results> 5 </package>

  注:局部的會覆蓋全局-但全局和局部同時存在時,局部的會覆蓋全局的。

全局結果和局部結果的區別:
  * 全局結果:對該包下所有的action配置起作用
  * 局部結果:只對當前的action起作用

?  Struts2中 應用范圍內action的實例,每個請求都會創建一個action實例-也就是對于每一個請求都會new一個Action對象。刷新或者回車

?

轉載于:https://www.cnblogs.com/hacket/archive/2013/05/15/3079050.html

總結

以上是生活随笔為你收集整理的struts2-通配符和动态方法调用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。