Struts2_5_ ActionMethod_DMI_动态方法调用

5_ ActionMethod_DMI_动态方法调用

部署Struts2_0500_ActionMethod 项目 ,访问http://localhost:8080/Struts2_0500_ActionMethod/  显示效果如下

5_ <wbr>ActionMethod_DMI_动态方法调用

 

这个小程序说的是 Action在执行的时候了不一定要执行 execute()方法,

5_ <wbr>ActionMethod_DMI_动态方法调用

 

这里的struts.xml中我们配置了一个package,两个action ,package的名字叫做user,它的namespace对应的也叫user,所以你访问的时候应该是user下面的action的名字叫做userAdd ,添加用户,这就是一个请求了,具体是这个请求的返回的结果其实你可以动态的指定,对应的处理类是UserAction,接下来是第三个参数 method 等于什么,这个参数的意思是当我们调用userAdd这个action的时候,它会调用对应的UserAction.java 那个class对象,但是了原来默认的是调用execute()方法,但是了在这里指定的是add方法,那他就会调用add()方法,大家可以看一下 UserAction.java类,其实在这个类中我就根本没有写 execute()方法,如下图所示

5_ <wbr>ActionMethod_DMI_动态方法调用

 

我这个类里面根本没有execute()方法,只有add()方法,只要你这个add()方法的返回值是一个String类型的,那么想调什么就调什么。在这里我就用return SUCCESS; 因为我们是从ActionSupport父类继承的,所以可以直接用它里面的常量,

所以我们来看一下我们的第一个链接,点击 添加用户链接

我们的第一个链接是这样的,user下面的userAdd 这个action。如下图所示

5_ <wbr>ActionMethod_DMI_动态方法调用

 

在这个action里面,它返回的是SUCCESS,所以他要找到对应的result,对应的result是 user_add_success.jsp页面,在这个JSP页面里面就一句话,User Add Success!,如下图所示:

5_ <wbr>ActionMethod_DMI_动态方法调用

 

拿到了返回的结果,那如果还有delete()方法了,那么我们就再建第二个action,叫做userDelete ,如果是第三个方法了,那么就叫userUpdate ,好这是一种方式,不过这种方式不推荐大家用,这个讲完之后,大家有可以忘了,原因是Struts 2 里面还有另外的一种访问方式,我们来看第二个action,

5_ <wbr>ActionMethod_DMI_动态方法调用

 

大家看这个action我就叫 user,就是说不管你想调用它里面什么样的方法,它都叫user,对应的action处理类是 com.bjsxt.struts2.user.action.UserAction ,我也不指定它的方法是哪一个,result跟原来是一样的,但是在我调用 它的时候,可以这么来调用,大家回来看看第二个链接,如下图所示

5_ <wbr>ActionMethod_DMI_动态方法调用

 

这种调用方式是user下面的userAction感叹号 add,指的就是说我就调用 那个userAction里面的那个add方法,所以这叫做动态的方法调用,有称为DMI,第二种是不是更简单,第二种如果我要是有很多的方法的话,我还是只需要配置一个action,所以如果你要用就用第二种,第一种可以忘了 ,

面试的时候,有人问你,method,你挠挠头,告诉他,老大你们还要用method 吗?我们都是用动态的,或者是后面好要讲的通配符。

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值