2011-01-25 49 views
3

是否应该在struts.xml中列出所有动作类?如果struts2框架没有在struts.xml中列出,它可以知道动作类吗?是否所有动作类都应在struts.xml中列出

背景:我对struts比较陌生,并且被要求清理一些struts2代码。有一些类没有在struts2.xml中引用,任何jsp或javascript(我做了一个字符串搜索)。我想知道如果我可以删除这些。

编辑:我很确定这些类不被其他Java类/库使用。这是我想知道的struts部分。

+1

当你继承一个新的项目时,你不会知道你会发现哪些畸变。当你做出任何改变时,你应该测试以确保你没有损坏任何东西。 – 2011-01-25 14:15:47

回答

4

为了在它们的预期形式使用作为Web动作,以下四种可能性之一必须为真:

  1. 该类在struts.xml中
  2. 类被注释列用struts注释
  3. 类被另一个动作类继承
  4. 项目所使用的约定插件,如@Christina
提到

如果您正在查看的类不在struts.xml中,未添加注释,未在项目的其他任何地方引用该项目,并且该项目未包含约定插件,则应该很好。

唯一的其他问题是寻找其他* .xml文件。 struts.xml能够在其中包含其他xml文件,以便该类的实际操作配置可以驻留在不同的xml文件中。

0

是的,他们必须是。这是公认和正确的做法。

0

如果在struts.xml中没有列出任何动作类,它并不表示应用程序不需要它。仅仅因为它没有在struts.xml中列出,你不能删除一个类。它可能已被某些其他课程内部使用。

3

不,不是所有的Struts2操作都需要在xml文件中声明。如果您使用的是惯例插件,那么Struts2框架也知道包含在名为struts,struts2,action或action的软件包中的所有类,这些软件包实现了com.opensymphony.xwork2.Action或名称以Action结尾。当然,这个约定插件也可以配置为识别其他类。请参阅此处(http://struts.apache.org/2.1.6/docs/convention-plugin.html)以获取有关约定插件如何工作的更多详细信息。

相关问题