(5)通配符

<struts>
    <constant name="struts.devMode" value="true" /><!-- 开启使用开发模式,详细错误提示,否则得重新部署,才能将修改改动-->


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

       <!-- 若地址栏输入http://localhost:8080/struct_ActionWildcard/actions/useradd 
            在struct中并没有useradd,所以再从带有通配符中找,则此时第一个*,就代表add
            (系统默认给*编号,{1}则代表第一个*  即add)
        从上面可以看出可以动态输入不同的action。例如:http://localhost:8080/struct_ActionWildcard/actions/userdel!del
       -->

       <!-- 在之前的!(struct_actionMethod)中也可以简化操作,但是result里面的内容一定是不同的, <action name="add">/user_add_success.jsp
          所以通配符能够最大程度简化操作。
        -->
        <action name="user_add"></action><!-- 则会执行这个,而不执行带有通配符的 -->
        <!-- 若action中没有,但是在用URL使用user_add两者都能匹配,此时看哪个写在前面,则匹配哪个 -->
        <!-- 若使用通配符,则必须遵守"约定优于配置" 的原则 -->

       <action name="user*" class="com.front.action.UserAction" method="{1}">
          <result><!-- 等价于<result name="success"> 没写name,所以默认值为success> -->
             /user_{1}_success.jsp
          </result>
       </action >
       <!-- 通配符对于简单的CRUD的工程或者软件原型,只要含有Action的包名、action的类名、对应的方法名写有规律的应用,可以大大简化配置的工作 -->
         <action name="*_*" class="com.front.action.{1}Action" method="{2}">
          <result>
             /{1}_{2}_success.jsp
          </result>
       </action >
       <!-- 这里补充说明class:大多数情况,需要配置class属性的值,因为我们需要把自己,用来处理请求的Action类配置上去,,而不是使用默认的配置。
          现在考虑一种情况,对于安全性比较高的web项目,往往把jsp放在web-inf下,这样可以防止外界直接使用URL来访问jsp页面,这时的jsp就一定在servlet或者Action的后继页面
         才能访问到。因此,可以把之前不需要Action处理的页面,可以作为ActionSupport的后继页面,使用default-class-ref,可以减少配置。
        -->
       <action name="index" >
          <result><!-- 等价于<result name="success"> 没写name,所以默认值为success> -->
             /WEB-INF/first.jsp
          </result>
       </action >


    </package>


</struts>

public class TeacherAction extends ActionSupport{

    public String add(){
        // TODO Auto-generated method stub
        return SUCCESS;
    }
    public String del(){
        // TODO Auto-generated method stub
        return SUCCESS;
    }
    public String update(){
        // TODO Auto-generated method stub
        return SUCCESS;
    }
    public String look(){
        // TODO Auto-generated method stub
        return SUCCESS;
    }

}

这里写图片描述

posted @ 2017-11-06 20:13  测试开发分享站  阅读(133)  评论(0编辑  收藏  举报