2012-07-20 93 views
1

我是struts的新手,我在Struts中有一个基本的疑问。我是否需要为每个请求创建一个新的Struts Action类?

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

+0

这取决于你如何简化它。如果操作属于同一个域,则执行一个操作或分割它。 – 2012-07-21 05:04:55

回答

3

它眷的是何等的所有10个链接会doing.There有几个选择这里。

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

S2提供的方式来定义每个动作映射方法和基于该方法名S2会打电话给你的行动尊重方法类似

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

需要注意的是,只有当你有方法创建一个Action类在做任何重定向之前需要执行某种逻辑。

对于简单的一页到其他页面重定向S2提供了一种非常优雅的方式,它将在运行时创建一个空的带有execute方法的Action,并始终返回SUCCESS这是wh你需要做的

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

在上述情况下,如果在动作映射类属性留空,则com.opensymphony.xwork2.ActionSupport类用作默认。 有关详细信息,请参阅此页action-configuration

+0

它给出的错误消息“找不到指定网址的操作配置。” 这是我的链接First Page 我的Struts配置文件 <的struts-config> <动作映射> <动作名称= “第一”> <转发名= “成功” 路径=“/第一页。 JSP“> OCJP 2012-07-20 08:08:53

+0

る起诉struts1中?? – 2012-07-20 09:20:52

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> 
1

不需要为每个链接创建单独的操作类,我们只需要使用方法属性单击每个链接来配置要调用的方法名称,一个操作类是足够的,动作映射应该在struts.xml中配置。

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

相关问题