是否应在struts.xml中列出所有操作类

时间:2011-01-25 05:48:34

标签: java struts2

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

背景:我对struts相对较新,并被要求清理一些struts2代码。 struts2.xml中没有引用一些类,任何jsp或javascript(我都进行了字符串搜索)。我想知道我是否可以删除它们。

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

4 个答案:

答案 0 :(得分:4)

为了以预期的形式用作网络动作,必须满足以下四种可能之一:

  1. 该类列在struts.xml
  2. 该类使用struts annotations注释
  3. 该类由另一个操作类继承
  4. 您的项目正在使用常规插件,如@Christina
  5. 所述

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

    唯一的其他问题是寻找其他* .xml文件。 struts.xml能够将其他xml文件包含在其中,因此该类的实际操作配置可能位于不同的xml文件中。

答案 1 :(得分:3)

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

答案 2 :(得分:0)

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

答案 3 :(得分:0)

如果struts.xml中没有列出任何操作类,那么它并不意味着应用程序不需要它。您不能仅因为它未在struts.xml中列出而删除类。它可能已经被其他一些人在内部使用过。