Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Struts 2-动态设置要执行的方法名称,从一个操作调用另一个操作方法_Java_Servlets_Struts2 - Fatal编程技术网

Java Struts 2-动态设置要执行的方法名称,从一个操作调用另一个操作方法

Java Struts 2-动态设置要执行的方法名称,从一个操作调用另一个操作方法,java,servlets,struts2,Java,Servlets,Struts2,我有一个关于Struts 2方法调用的问题。 假设我想动态调用该方法,并且该方法名称将来自DB。所以情况是, 有一个主模块和两个子模块,比如M1和M2,现在来自任何模块的每个请求都将通过主模块,所以如果模块M1要求方法名,假设getName只存在于M2 action类中,这里M1不知道它,然后,首先M1将向主模块发送一个请求,将方法名称作为参数,然后主模块将找出该请求用于哪个方法,然后他将调用M2 getName方法。为此,我们不需要将方法getName映射到Struts.xml,我们必须在主模

我有一个关于Struts 2方法调用的问题。 假设我想动态调用该方法,并且该方法名称将来自DB。所以情况是, 有一个主模块和两个子模块,比如M1和M2,现在来自任何模块的每个请求都将通过主模块,所以如果模块M1要求方法名,假设getName只存在于M2 action类中,这里M1不知道它,然后,首先M1将向主模块发送一个请求,将方法名称作为参数,然后主模块将找出该请求用于哪个方法,然后他将调用M2 getName方法。为此,我们不需要将方法getName映射到Struts.xml,我们必须在主模块的Action类中设置它。我无法理解如何做到这一点,因为每次主模块都会获取一些方法名作为参数,并调用包含该方法名的相应操作。 请帮忙

谢谢 塔潘国际海事组织: 您可以使用下面的技术动态地传递方法名

如果action=customerActiongetCustomerName.do

<action name="customerAction*"
            class="xxxx" method="{1}">
            <result name="success">/yyyy.jsp</result>
</action>

似乎您不需要struts2请求处理机制,如果多个模块存在相同的方法名称,该怎么办?Hi-Umesh感谢您的回复,我们已将所有方法名称添加到DB中,与它们的模块名称相对应,如果方法名称重复,那么我们将使用第一个方法,在index0,在我们的列表中可以找到。我想问的另一件事是,我们通常在JSP中决定在我们的操作中调用哪个方法,比如action=customerAction!所以这里我们知道我们调用的方法和上面的getCustomerName方法一样,我们可以动态地调用它吗?我是说内部行动课,我们可以定义要调用的特定操作的方法名称吗?我无法正确回答您的问题。但是您可以在action类中定义尽可能多的方法,并在struts.xml中配置它们。另一种方法是让一个操作处理所有请求,并从请求中获取方法名称,而不是在main method委托中callas to尊敬的methodsHi Umesh,谢谢你的回答。我相信OP已经提到他不想在struts.xml文件@Arun中设置它们,谢谢Arun,谢谢你的回答,但是按照你告诉我的方式,我不想使用它。