struts2--(3)一些小知识点--方法调用问题

本文详细介绍了Struts2框架中三种常见的方法调用方式:通过action标签method属性直接指定、启用动态方法调用及使用通配符进行配置。每种方法都提供了具体的配置示例和适用场景。

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

 ---方法调用问题
 
 在struts2中,是通过在struts.xml中配置要调用action中的那个方法的,一般是通过action标签的属性,method来指定,默认是调用其
execute方法。常见有三种方法来指定调用action中的那个方法(这些方法的返回值都需要为String类型)。
 
 方法一:
  在action标签中,通过method属性来指定该方法名,不指定的话,默认为execute,如下:
   

 <action name="*Action" class="cn.itcast.action.TestAction" method="add">
            <result name="success">
                /WEB-INF/jsp/success.jsp
            </result>
            <result name="error">
             /WEB-INF/jsp/error.jsp
            </result>
        </action>

 

     在struts.xml中配置完后,只需要在浏览器地址中输入
    http://localhost:8080/Struts2_0001/TestAction,它将会调用TestAction中的add方法。
  在实际应用中,这种方法有个缺点,当一个action要处理很请求时,每个请求调用不同的方法,那么这个时候就要编写很多这种action配置。
  比较繁琐。
  
 方法二:
  鉴于上面那种方法的缺点,struts2提供了一种方法叫动态调用,它将可以在URL中指定要调用的方法,而action中不用做任何配置。这时就
 可以实现,只配置一个action,就可以处理多个请求。但是使用这种方法的前提是要在struts.xml中配置如下内容:
 

 <constant name="struts.enable.DynamicMethodInvocation" value="true" />

 它会将动态方法调用打开。具体示例如下:
 

 <action name="Test" class="cn.itcast.action.TestAction">
            <result name="success">
                /WEB-INF/jsp/success.jsp
            </result>
            <result name="error">
             /WEB-INF/jsp/error.jsp
            </result>
    </action>

    action配置中,无需指定method方法;区别于方法一的是,在URL访问地址中写成如下方式
     http://localhost:8080/Struts2_0001/test/Test!add
     (注意,要是action配置了后缀,url需写成如下方式:
    http://localhost:8080/Struts2_0001/test/Test!add.action
    其中,Test为action名,add为action中的方法。需要通过"!"号来指定。但是这种方法也不太推荐使用。
   
    方法三:
     这种方法其实就是第一种方法,不通的是,它是通过通配符来实现的。这样也可以做到只配置一个action,就可以访问到所有action方法。
    其原理是在aciton名中带一部分内容,此内容代表访问action中的方法,这部分内容用通配符"*"号代替。method就指定这个"*"匹配方法。
    配置如下:
      

<action name="Test_*" class="cn.itcast.action.TestAction" method="{1}">
            <result name="success">
                /WEB-INF/jsp/success.jsp
            </result>
            <result name="error">
             /WEB-INF/jsp/error.jsp
            </result>
        </action>

 

     上述配置中{1}就是指定的方法。这是URL中地址可以这样写:
      URL:http://localhost:8080/Struts2_0001/test/Test_add       它将调用TestAction中的add方法
      URL:http://localhost:8080/Struts2_0001/test/Test_update  ,它将调用TestAction中的update方法
      
     这种方法是官方推荐使用的一种方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值