动态方法调用

本文介绍了Struts2中的动态方法调用,包括两种方式:一是通过特定格式的动作名调用,二是使用通配符进行方法调用。官方推荐避免使用第一种方法,可以通过配置关闭。第二种方法利用命名规则简化配置文件,提高代码可读性。在实际应用中,如AJAX和jQuery交互,命名规则对于选择和操作元素至关重要。

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

动态方法调用有两种:1、通过在动作名后面加上!+相应要调用的动作名。2、通过通配符对相应的方法进行调用。
第一种方法:官方不建议使用,并且这种调用可以关闭,在default.properties文件中找到struts.enable.DynamicMethodInvocation 属性,然后在struts.xml文件中,利用更改常量的方法关闭。
第二种方法:在没使用通配符对方法进行调用的时候,struts.xml文件的代码是这样的:

        <action name="customer_add" class="cn.ansel.domain.Customer" method="add">
            <result name="success">/add.jsp</result>
        </action>
        <action name="customer_delete" class="cn.ansel.domain.Customer" method="delete">
            <result name="success">/delete.jsp</result>
        </action>
        <action name="customer_update" class="cn.ansel.domain.Customer" method="update">
            <result name="success">/update.jsp</result>
        </action>
        <action name="customer_query" class="cn.ansel.domain.Customer" method="query">
            <result name="success">/query.jsp</result>
        </action>

在地址栏中输入:http://localhost:8080/struts2Day02/ns2/customer_query的时候,显示这里写图片描述

当使用通配符进行方法调用的时候,struts.xml文件是这样写的,


    <package name="p2" extends="struts-default" namespace="/ns2">
        <action name="customer_*" class="cn.ansel.domain.Customer" method="{1}">
            <result name="success">/{1}.jsp</result>
        </action>

这里主要利用的时命名规则,在前面利用ajax+jquery进行应用的时候,这里写图片描述
当选择一个子元素时,父元素就被选中。当所有子元素都没有被选中时,父元素也不被选中,这里利用的就是命名的规则,把customer_customer作为父元素的名字,子元素的名字为customer_visit,customer_list,customer_records,customer_set(图中第一栏).
要获取到父元素,这里有子元素的名字,只要把子元素的名字用JavaScript的正则表达式的split方法,以”_“把名字分开,即可获取到父元素对象。这里也是一样的道理。可见命名对于编程的重要性。

这里的{1}就是对应地址栏中输入的动作名称。可见,这样使配置文件明了了许多

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值