struts 常用的action使用讲解

structs里Dispatchaction VS LookupDispathAction
   Struts里这两个玩意还是十分有用的,近来学习到,故总结之
首先,DispatchAction的作用简单地说就是把原来我们写在多个acton里的操作放在同一个
action里处理,比如在商品购物系统中,有增加商品,删除商品,修改商品和查看商品,以前的话,要写三个action来操作之,现在可以合在一个action里进行操作了,可以创建一个类,继承自dispatchaction类的子类,不需要覆盖execute()方法。比如
import org.apache.struts.actions.DispatchAction;
public class ItemeAction extends DispatchAction{
 //增加商品
        public ActionForward add(ActionMapping mapping,
                            ActionForm form,
                            HttpServletRequest request,
                            HttpServletResponse response)
          throws Exception {
          }
/**编辑商品**/
            public ActionForward edit(ActionMapping mapping,
                            ActionForm form,
                            HttpServletRequest request,
                            HttpServletResponse response)
          throws Exception {
 }         
    }
 接着,我们配置
<action path="/item"
 input="inputitem.jsp"
 parameter="method"  scope="request"
 type="ItemeAction"  
 validate="false">
</action>
上面的配置,要注意的是,要加上parameter="method".当itemaction这个类执行时,它实际上执行的是基类的dispatchaction的execute方法。DispatchAction根据参数method的值来确定具体调用的是其中的哪一个方法,比如一个用户的调用是
http://localhost/xxx/item?method=add,则调用itemaction类add的方法
再来看下lookupdispatchaction.该类是DispatchAction类的一个子类,它的应用场合在于多个同名提交按钮的表单场合。比如在一个购物的应用中,一个按钮用来“更新”购物车,一个用来移除购物车里的商品,一个用来做“提交结帐”的功能,假如他们的名字都叫action的按钮,则代码为
 <html:form action="/cart">
    <html:submit property="action">
       <bean:message key="cart.update"/>
    </html:submit>
    <html:submit property="action">
      <bean:message key="cart.check"/>
    </html:submit>
 </html:form>
然后配置其action,
<action path="/carts"
       type="cartaction"
        name="cartForm"
        scope="request"
        parameter="action">
  //注意这里parameter名要为action
  </action>,
接下来是创建lookupdispatchaction类的子类,扩展LookupDispatchAction类,需要实现getKeyMethodMap()方法,该方法返回java.util.Map类的对象,如
protected Map getKeyMethodMap() {
      Map map = new HashMap();
     map.put("cart.update", "update");
      map.put("cart.check", "checkcart");
      return map;
 }
public ActionForward update(ActionMapping mapping,
          ActionForm form,
          HttpServletRequest request,
          HttpServletResponse response)
          throws IOException, ServletException {
     // do add
      return mapping.findForward("success");
 }
 public ActionForward checkcart(ActionMapping mapping,
          ActionForm form,
          HttpServletRequest request,
          HttpServletResponse response)
          throws IOException, ServletException {
      // do delete
      return mapping.findForward("success");
 }
STRUTS一些问题的想法- -| 回首页 | 2004年索引 | - -dispatchaction测试记录Struts DispatchAction LookupDispatchActi- -
   

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值