我是struts的新手,我对Struts有一个基本的疑问。
我创建了一个新网页,其中包含10个链接(link1,link2,...... link10)。点击每个链接时,它应链接到相应的页面。我的问题是我是否需要创建10个新的Struts Action类来执行重定向,或者我还有其他方法可以处理可以处理所有10个链接的单个Struts Action类。
答案 0 :(得分:3)
它取决于所有这10个链接将要做什么。这里有几个选项。
S2提供了为每个动作映射定义方法的方法,并且基于方法名称S2将调用您所采取行动的尊重方法,如
<action name="action1" class="myActionClass" method="method1"/>
<action name="action2" class="myActionClass" method="method2"/>
请注意,只有在执行任何重定向等操作之前需要实现某种逻辑时,才使用方法创建一个Action类。
对于简单的一页到其他页面重定向S2提供了一种非常优雅的方式,它将在运行时使用execute方法创建一个空Action并始终返回SUCCESS
这就是你需要做的事情
<action name="Hello">
// ...
</action>
在上述情况下如果动作映射中的class属性为空,则com.opensymphony.xwork2.ActionSupport类用作默认值。 有关详细信息,请参阅此页面action-configuration
答案 1 :(得分: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>
答案 2 :(得分:1)
不需要为每个链接创建单独的动作类,我们只需要使用method属性配置要在每个链接上单击调用的方法名称,一个动作类就足够了,应该配置动作映射在struts.xml中。
这是struts2.xml中的一个优点,就像在struts1中一样,我想我们需要使用调度操作来调用特定的方法。