初识Struts(六)----ActionMapping

本文详细解析了Struts框架中ActionMapping的概念及其配置方法。包括如何通过<action>标签配置特定请求映射、转发逻辑及错误处理等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 理解ActionMapping:

 

      struts-config.xml文件中每个<action>标签都对应一个ActionMapping实例对象。<action-mappings>将特定请求映射到特定Action的相关信息存储在ActionMapping中,ActionServeltActionMapping传送到Action类的execute()方法,Action将使用ActionMappingfindForward()方法,此方法返回一个指定名称的ActionForward,这样Action就完成了本地转发。若没有找到具体的ActionForward,就返回一个null.

各属性的含义如下:

      * path: 指定该Action接收的特定请求

       * type: 指定该Action的类绝对路径

       * forward: 只作页面跳转时可使用,用来减少Action数量.注意:这个不是<forward>标签

           如:

      <action path="/login1"
              forward="/login.jsp">
      </action>

 上面的配置表明该Action接收页面的login1.do请求,然后不作任何逻辑处理直接跳转到login.jsp页面, 这样就避免了只为跳转而写Action

 

      * name: 指定该Action关联的ActionForm

      * scope: 默认为session,一般不是session范围要用到的数据不要设到session中,这样会无谓增加session负载,故尽量设成scope=request

      * validate: 默认为false,设为true时会在页面收集数据前自动调用ActionForm中的validate方法

       * input: 错误处理,如:
     <action path="/login1" 
             type="cn.huan.struts.LoginAction"
             name="loginForm"
             scope="request"
             validate="true"
             input="/login1.jsp">
           <forward name="success" path="/login_success.jsp"/>
           
      </action>
 上面的input=/login1.jsp属性表明该Action处理错误后跳转到login1.jsp页面(path属性表明该Action接收页面login1.do请求,type指明了该Action的类位于cn.huan.struts.LoginActionname指明该Action关联的ActionFormscope表明关联的ActionForm的作用范围为requestvalidate值为true表明收集数据时ActionForm会调用validate方法进行验证,<forward>标签配置了跳转路径)
              * unkonow:  默认情况为false,页面的.do请求提交时就会到配置文件中找相应pathaction,有则调用相应的Action,若没有就会到unknowtrue<action>的地方处理该不存在的.do方法
      <action path="/testunknow"
              unknown="true"
              forward="/testunknow.jsp">
      </action>

上面的配置表明,如果客户端发送了没有定义的Action请求,则会交给该匿名ActionMapping来处理(上例是直接跳转到testunknow.jsp页面了)

 

ActionMapping配置综合实例:

  <action-mappings>
     <action path="/login" 
             type="cn.huan.struts.LoginAction"
             name="loginForm"
             scope="request"
             >
           <forward name="success" path="/login_success.jsp"/>
           <!-- 
           <forward name="error" path="/login_error.jsp"/>
            -->
            
            <forward name="error" path="/login.jsp"/>
            
      </action>
      
      <action path="/login1"
              forward="/login.jsp">
      </action>
      
         <action path="/login2" 
             type="cn.huan.struts.LoginAction"
             name="loginForm"
             scope="request"
             >
           <forward name="success" path="/login_success.jsp"/>
           <!-- 
           <forward name="error" path="/login_error.jsp"/>
            -->
            
            <forward name="error" path="/login_by_strutstag.jsp"/>
            
      </action>
      
      <action path="/testunknow"
              unknown="true"
              forward="/testunknow.jsp">
      </action>
      
      <action path="/loginstrutstag"
              forward="/login_by_strutstag.jsp">
      </action>
  </action-mappings>

 

 ........

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值