Struts 2 - 动态设置方法名称,从一个Action调用另一个Action方法,执行

Struts 2 - 动态设置方法名称,从一个Action调用另一个Action方法,执行

问题描述:

我有一个关于Struts 2方法调用的查询。 假设我想动态调用方法,并且该方法名称将来自数据库。所以场景是, 有一个主模块和2个子模块可以说M1和M2,现在来自任何模块的每个请求都会通过主模块,所以如果模块M1要求方法名称假设存在于M2动作中的getName() (在这里M1没有意识到),那么第一个M1会发送一个请求到主模块(方法名称作为参数),那么主模块将找出这个请求的方法,然后他将调用M2 getName()方法。为此,我们不需要将方法getName()放入Struts.xml中,我们必须在Master Module的Action类中进行设置。我无法理解如何执行此操作。因为每次主模块都会获取一些方法名称(如参数)并调用包含该方法名称的相应操作。 请帮助Struts 2 - 动态设置方法名称,从一个Action调用另一个Action方法,执行

感谢 塔潘

+0

看来,你不” t想要struts2请求处理机制,以及如果存在与多个模块相同的方法名称? – 2012-01-18 05:24:20

+0

嗨Umesh感谢您的回复,我们添加了所有方法名称在DB中与模块名称相反,如果方法名称重复,那么我们将使用第一个方法,位于索引(0)处,位于我们的列表中。 – 2012-01-18 22:07:19

+0

我想问的另一件事一般来说,我们在JSP中决定我们要在我们的动作中调用哪个方法,如action =“customerAction!getCustomerName.do”,所以我们知道我们调用哪个方法(如上面的getCustomerName方法) ,我们可以动态地制作它吗?我的意思是在动作类内部,我们可以定义特定动作的方法名称(我们想要调用)。 – 2012-01-18 22:17:23

IMO: 您可以通过以下技术动态传递的方法名

如果行动=“customerActiongetCustomerName.do

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

我相信OP已经提到他不想在struts.xml文件 – 2012-01-19 11:21:03

+0

@ Arun,Thanks Arun中设置它们作为回答,但是您告诉我的方式,我不想使用它。 – 2012-01-23 04:57:12