struts 2 配置通配符
2019獨角獸企業重金招聘Python工程師標準>>>
?隨著Web應用程序的增加,所需的Action也會更多,從而導致大量的action映射,使用通配符可以減少action配置的數量,使一些具有類似行為的Action或者Action方法可以使用通用的樣式來配置。
??????通配符即星號(*),用于匹配0個或多個字符,在配置action時,可以在action元素的name屬性中使用星號(*)來匹配任意的字符。
?????????????以下是在action映射中使用通配符:
???????????????<actionname="news*"?????????
class="org.struts2.lesson05.News{1}Action">
????????????????????<resultname="success">/WEB-INF/News/{1}.jsp</result>
????????</action>
??????我們在action元素的name屬性中使用了通配符(*),允許這個映射匹配所有以/news開始的URL,例如/newsAdd,/newsEdit,/newsDelete,但是,如果請求的是/newsEdit/add,那么這個映射就不會被匹配。
??????在上面,有一個特殊的記號{1},這是作為占位符使用的,它將被通配符所匹配的值替換,例如訪問/newsEdit,通配符(*)匹配的部分是Edit,那么,這個值將替換{1},最終調用的類是org.struts2.lesson05.NewsEditAction,Action
???執行成功后導向的結果頁面是/WEB-INF/News/Edit.jsp。
??????在action映射和action結果中,通配符匹配的值可以用記號{N}來訪問,N是從1到9的數字,指出替換的是哪一個通配符匹配的值。整個請求URL可以用記號{0}來訪問。例如如下的action映射:
?????<actionname="*_*"class="org.struts2.lesson05.{1}Action"?
method="{2}">
????????????<result>/WEB-INF/News/{0}.jsp</result>
????????</action>
??????當訪問/News_delete時,name屬性中的第一個”*”匹配News,第二個”*”匹配delete,class屬性中使用的記號是{1},所以被News所替換,method屬性中使用的記號是{2},于是被delete所替換。結果映射中使用的記號是{0},于是被整個URL替換,即News_delete所替換。整個替換后的結果是:當請求/News_delete時,框架調用NewsAction實例的delete方法對請求進行處理。執行成功后,請求被導向到/WEB-INF/News/News_delete.jsp頁面。
??????通配符方法設置的另一種常見方式是使用后綴通配符,即將”*”放在action名字的后面,在”*”和名字前綴之間使用一個特殊字符作為分隔,常用的特殊字符是下劃線(_),當然也可以使用其他字符。例如:
???????????????<actionname="News_*"?
class="org.struts2.lesson05.NewsAction"method="{1}">
????????????????????<result>/WEB-INF/News/{0}.jsp</result>
????????</action>
???????當請求/News_delete時,調用的是NewsAction實例的delete方法,當請求/News_edit的時候,調用的是NewsAction實例的edit方法。
轉載于:https://my.oschina.net/u/1014212/blog/118191
總結
以上是生活随笔為你收集整理的struts 2 配置通配符的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Flex通过Blazeds利用Remot
- 下一篇: 转】未指定 INSTANCESHARED