是否应在struts.xml中列出所有操作类?如果struts2框架没有在struts.xml中列出,那么struts2框架可以知道它们吗?
背景:我对struts相对较新,并被要求清理一些struts2代码。 struts2.xml中没有引用一些类,任何jsp或javascript(我都进行了字符串搜索)。我想知道我是否可以删除它们。
编辑:我很确定其他Java类/库不会使用这些类。这是我想知道的struts部分。答案 0 :(得分:4)
为了以预期的形式用作网络动作,必须满足以下四种可能之一:
如果您正在查看的类不在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中列出而删除类。它可能已经被其他一些人在内部使用过。