Struts2基礎入門(四)action類的三種訪問方式

1.傳統訪問

struts.xml文件裏面的action配置:

<action name="Action_add" class="com.xj.struts.HelloAction" 
method="add"></action>

這裏的配置說明了只要訪問的請求Action_add傳進來了,struts底層就會通過反射調用class屬性裏面的類,並實現method屬性記錄的方法。
這種訪問方式雖然有效,但是不夠靈活,當項目模塊較多,action類裏面的方法非常多的時候,配置文件就會變得非常冗餘笨重。

2.通配符訪問

struts.xml文件裏面的action配置:

<action name="Action_*_*" class="com.xj.struts.HelloAction" 
method="{1}"></action>

這裏對請求name使用了" * "通配符,這個就類似於正則表達式,只要請求前面帶了Action_之類的請求就會被該action進行匹配。後面method中的 {1} ,代表name屬性值中的第一個通配符,如果是{2},則代表第二個通配符。類似於數組,一一對應。
如果你是在struts2 2.5版本下使用統配符,記得在package標籤下面添加

<global-allowed-methods>regex:.*</global-allowed-methods>

開啓全局允許的變量,不然將無法使用通配符。
使用通配符的action動作標籤就會變得十分靈活,並且可以減少重複的action標籤配置。這將會是我們日常開發中用到的最多的一種訪問方式。

3.動態訪問(感嘆號)

struts.xml文件裏面的action配置:

<!-- 開啓動態方法訪問 -->
<constant name="struts.enable.DynamicMethodInvocation" value="true" />

這裏必須先在常量中開啓動態訪問方式,然後就是action標籤的寫法:

<action name="Action" class="com.xj.struts.HelloAction"></action>

因爲開啓了動態訪問,那麼動態在哪裏呢?答案是訪問請求的格式:
動態訪問格式:/動作類路徑!動作類裏面的方法名
比如/Action!add
配置文件就會去訪問action標籤對應的類裏面的add方法。
此方法需要先開啓動態訪問,這個方法官方不推薦,平時開發也用得比較少。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章