Struts2配置檔案中的萬用字元的使用
<package name="user" extends="struts-default" namespace="/">
<action
name="user_*" class="com.test.action.UserAction"
method="{1}">
<result>/user_{1}.jsp</result>
</action>
</package>
*匹配任意字元比如“user_add”就匹配“user_*”,{1}是匹配第一個*,比如說,如果有匹配模式*_*,則{2}匹配的是第二個*。
我們可以看到,類class是必須寫的,置於方法和action的名字,我們可以按照一定的規則來定義,以便可以通過使用萬用字元來配置。
萬用字元配置的優點是簡單,缺點是可閱讀性差。另外,還要注意一下優先權的問題。
大家可以看到,配置檔案裡面,只有三句話就將增刪改查四個操作全部配置好了....這就是萬用字元的作用.但是,我們也可以看到,對應的命名規則的約定也非常的苛刻...
最後需要注意的一點是匹配的優先權
(1)如果struts.xml裡面有對應的action name .就算它有其他萬用字元匹配的,都優先對應完全相同的.
比如 有一個 action name 是 "user_add" 還有一個是 "user_*" .現在,來一個請求是 "user_add.action " .那麼,它會優先匹配"user_add " ..其實,這個很好理解..
(2)如果一個action name對應於兩個帶萬用字元的action name 那麼,需要看這個配置誰在前面.它匹配寫在前面的
比如 有一個 action name 是 "*_*" 還有一個是 "user_*" .現在,來一個請求是 "user_add.action " .那麼,它會優先匹配寫在前面的...
任何帶"*"的action name 優先權都是一樣的...不是說帶一個"*"的優先權就比帶兩個"*" 的高.