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