struts.xml中Struts的默认包名是什么?

我创建了一个名为RegesterAction的新类,但我没有在任何包中保留此类。 如何在struts.xml配置此类?

下面是struts.xml文件,但我无法理解属性值"default"struts-default

    /register.jsp   

包名称完全独立于代码工件。

struts-default包是…… Struts 2的默认包 。 它定义了默认结果类型,拦截器,拦截器堆栈和一些其他默认值。您不需要扩展它,但如果不这样做,您需要在自己的包中进行大量的手动工作。

我相信你应该将你的行动类放在一个包中,并且可以认为没有合理的论据反对这样做的最佳实践。 同样,您的操作类包完全独立于包名称,或包扩展的内容(如果有)。

Struts2中的包与Java中的包略有不同,但用法是将代码分离到与自己的命名空间一起使用的不同模块中,所以它与动作名称没有冲突。 为了更好地理解包和命名空间的概念,您可以查看Struts 2命名空间配置示例和说明教程。

如果您将类保留在源文件夹中并且它迟早不属于该包,则最终会出现命名新类和繁重代码管理的问题。

Struts2框架有一个名为struts-default的包,它包含了在应用程序配置中使用的所有必要的东西,可以通过将此名称放入标签的extends属性来extends 。 您还可以包含其他插件的其他默认包,即json-default等。

只要命名空间与包名称相关,您就可以比较Struts2框架中Java语言和包命名空间使用的包名称,您可能会发现它们类似,但它们完全不同。 例如,Struts2使用的默认命名空间是"" ,当在其他包/命名空间中找不到操作或结果名称时使用。 如果您使用namespace="/"这是应用程序的包根,这几乎是等效的。

如何使用defaultroot命名根包,但不使用框架已使用的名称,即struts-default ,如果省略namespace属性,则将使用默认命名空间。 这类似于Java,如果省略包声明,则使用默认包。

概念默认可能会通过其他术语传播,例如,默认操作,默认结果,默认拦截器堆栈等。框架也使用名称默认为已知接口的默认实现,依此类推。 默认一词没有单数含义。 通常,如果省略代码,框架将使用它的默认设置。

是的你可以在struts.xml中包含这两种类似的东西