Action通配符(wildcard)的配置
使用通配符將配置量降到最低 不過一定要遵守約定優於配置的原則
通配符
星號(*) 表示所有
{數字} 表示第幾個通配符
例如Student* 那麼{}代表第一個星號(*)
*_* 那麼{}代表第一個星號(*) {}代表第二個星號(*)
[html]
<package name=actions extends=strutsdefault namespace=/actions>
<action name=Student* class=combjsxtstrutsactionStudentAction method={}>
<result>/Student{}_successjsp</result>
</action>
<action name=*_* class=combjsxtstrutsaction{}Action method={}>
<result>/{}_{}_successjsp</result>
<! {}_successjsp >
</action>
</package>
<package name=actions extends=strutsdefault namespace=/actions>
<action name=Student* class=combjsxtstrutsactionStudentAction method={}>
<result>/Student{}_successjsp</result>
</action>
<action name=*_* class=combjsxtstrutsaction{}Action method={}>
<result>/{}_{}_successjsp</result>
<! {}_successjsp >
</action>
</package>
解釋第一個Action的名稱為name=Student* method={}表示所有Action以Student開始的都會執行這個Action並且執行Student後字符為方法名的方法例如訪問的Action為Studentadd會執行這個Action(Student*)並且執行add的方法因為{}在這裡代表add並且返回/Studentadd_successjsp頁面
第二個Action的名稱name=*_* method={} class=…action{}Action 表示所有Action中包含下劃線(_)都會執行這個Action例如Teacher_add那麼會執行這個Action並且Action對應的類為TeacherAction且執行Action中的add方法返回結果頁面為/Teacher_add_successjsp因為在這裡的{}表示Teacher{}表示add
匹配順序
當匹配的Action有兩個以上時則會按匹配精確度高的那個Action當有個相同的匹配精確度時則按先後順序進行
From:http://tw.wingwit.com/Article/program/Java/ky/201311/28469.html