struts 2 配置通配符

 随着Web应用程序的增长,所需的Action也会更多,从而致使大量的action映射,使用通配符能够减小action配置的数量,使一些具备相似行为的Action或者Action方法可使用通用的样式来配置。 框架

      通配符即星号(*),用于匹配0个或多个字符,在配置action时,能够在action元素的name属性中使用星号(*)来匹配任意的字符。 less

             如下是在action映射中使用通配符:
               <actionname="news*"          jsp

class="org.struts2.lesson05.News{1}Action"> spa

                    <resultname="success">/WEB-INF/News/{1}.jsp</result> it

        </action> io

      咱们在action元素的name属性中使用了通配符(*),容许这个映射匹配全部以/news开始的URL,例如/newsAdd,/newsEdit,/newsDelete,可是,若是请求的是/newsEdit/add,那么这个映射就不会被匹配。 class

      在上面,有一个特殊的记号{1},这是做为占位符使用的,它将被通配符所匹配的值替换,例如访问/newsEdit,通配符(*)匹配的部分是Edit,那么,这个值将替换{1},最终调用的类是org.struts2.lesson05.NewsEditAction,Action struts2

   执行成功后导向的结果页面是/WEB-INF/News/Edit.jsp 配置

      在action映射和action结果中,通配符匹配的值能够用记号{N}来访问,N是从1到9的数字,指出替换的是哪个通配符匹配的值。整个请求URL能够用记号{0}来访问。例如以下的action映射:
     <actionname="*_*"class="org.struts2.lesson05.{1}Action"  sso

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方法。

相关文章
相关标签/搜索