1

我是struts的新手,我对Struts有一个基本的怀疑。

我创建了一个新网页,其中包含 10 个链接(链接 1、链接 2、......链接 10)。单击每个链接时,它应该链接到相应的页面。我的问题是我是否需要创建 10 个新的 Struts Action 类来执行重定向,或者我是否有任何其他方式来处理可以处理所有 10 个链接的单个 Struts Action 类。

4

3 回答 3

3

这取决于所有这 10 个链接将做什么。这里有几个选项。

  1. 如果所有链接都在做相同类型的工作(例如与用户相关的工作),最好使用多种方法创建一个操作。

S2 提供了为每个动作映射定义方法的方法,并且基于方法名称 S2 将调用您的动作的尊重方法,例如

<action name="action1" class="myActionClass" method="method1"/>
<action name="action2" class="myActionClass" method="method2"/>

请注意,只有在执行任何重定向等操作之前需要实现某种逻辑时,才使用方法创建 Action 类。

对于简单的一页到另一页的重定向,S2 提供了一种非常优雅的方式,它将在运行时创建一个带有执行方法的空操作,并且始终返回SUCCESS这是您需要做的

<action name="Hello">
   // ...
</action>

在上述情况下,如果动作映射中的类属性留空,则默认使用 com.opensymphony.xwork2.ActionSupport 类。有关详细信息,请参阅此页面操作配置

于 2012-07-20T06:06:57.700 回答
1

在 Struts 2 中,您不需要对每个 URL 进行单独的操作。您可以使用单个类,只需为每个链接创建单独的函数。

struts.xml 中的示例动作定义:

<action name="Link1" class="com.project.YourActionClass" method="handleLink1">
            ........
</action>

<action name="Link2" class="com.project.YourActionClass" method="handleLink2">
           .........
</action>
于 2012-07-20T05:35:36.940 回答
1

不需要为每个链接创建单独的动作类,我们只需要使用方法属性配置您希望在每个链接上单击时调用的方法名称,一个动作类就足够了,并且应该在struts中配置动作映射。 xml。

这是 struts2.xml 中的一个优势,而在 struts1 中,我想我们需要使用调度操作来调用特定方法。

于 2012-07-20T09:51:09.693 回答