初识Struts(六)----ActionMapping

 理解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>

 

 ........

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值