Struts2 学习笔记六 -- 通配符

通过DMI的方式,可以减少action的定义,但是在action中需要定义很多的result。
Struts2提供了一种减少定义result的方法,那就是使用通配符。

首先,看一个struts2的配置文件:
<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>
</package>

这里,"{1}"表示第1个*,例如,当请求以下路径时:
引用
http://localhost:9000/Struts2_0600_ActionWildcard/actions/Studentadd

*为add,因此method="add",返回的页面为/Studentadd_success.jsp
即实际调用的是StudentAction中的add方法。

struts2的配置文件还可以更加简洁,即在action的class中使用通配符,如下:
<package name="actions" extends="struts-default" namespace="/actions">
   <action name="*_*" class="com.bjsxt.struts2.action.{1}Action" method="{2}">
            <result>/{1}_{2}_success.jsp</result>       
        </action>      
    </package>

使用两个通配符,{1}代表第一个*,{2}代表第二个*号。
这个配置文件的意思是调用{1}Action的{2}方法,返回到{1}_{2}_success.jsp这个页面。例如,当请求一下路径时:
引用

http://localhost:9000/Struts2_0600_ActionWildcard/actions/Teacher_add

其中{1}为Teacher,{2}为add,即实际调用的是TeacherAction类中的add方法,返回到Teacher_add_success.jsp页面。

可以看到,使用第二种通配符,配置文件非常简洁,即使增加类和方法,也不需要修改配置文件,因此推荐通过第二种方式使用通配符。

你可能感兴趣的:(jsp)