Action通配符(wildcard)的配置

来源:互联网 发布:薪酬优化 劳务外包 编辑:程序博客网 时间:2024/05/15 22:55

使用通配符,将配置量降到最低, 不过,一定要遵守"约定优于配置"的原则

1、 通配符

星号(*)  表示所有

{数字} 表示第几个通配符

例如:Student*  那么{1}代表第一个星号(*)

           *_*        那么{1}代表第一个星号(*) ,{2}代表第二个星号(*)

2、 实例

<package name="actions" extends="struts-default" namespace="/actions">

        <action name="Student*" class="com.bjsxt.struts2.action.StudentAction" method="{1}">

            <result>/Student{1}_success.jsp</result>

        </action>

        <action name="*_*" class="com.bjsxt.struts2.action.{1}Action" method="{2}">

            <result>/{1}_{2}_success.jsp</result>

            <!-- {0}_success.jsp -->

        </action>

</package>

解释:第一个Action的名称为name=”Student*” method=”{1}”,表示所有Action以Student开始的都会执行这个Action,并且执行Student后字符为方法名的方法,例如:访问的Action为Studentadd,会执行这个Action(Student*),并且执行add的方法.因为{1}在这里代表add,并且返回/Studentadd_success.jsp页面。

第二个Action的名称name=”*_*” method=”{2}” class=”…action.{1}Action” 表示所有Action中包含下划线(“_”)都会执行这个Action,例如:Teacher_add,那么会执行这个Action,并且Action对应的类为TeacherAction,且执行Action中的add方法,返回结果页面为/Teacher_add_success.jsp,因为在这里的{1}表示Teacher,{2}表示add

3、 匹配顺序

当匹配的Action有两个以上时,则会按匹配精确度高的那个Action,当有个相同的匹配精确度时,则按先后顺序进行。
0 0