Struts2 中的包与 Java 中的包略有不同,但用法相同,可以将代码分成不同的模块,使用它们自己的命名空间,因此不会与动作名称冲突。为了更好地理解包和命名空间的概念,您可以查看Struts 2 命名空间配置示例和解释教程。
如果您将类保存在源文件夹中并且它迟早不属于该包,那么您最终会遇到命名新类和繁重代码管理的问题。
Struts2 框架有一个名为的包struts-default
,它包含所有必要的东西,可以通过将这个名称放入标签extends
的属性来扩展包来在应用程序配置中使用。<package>
您还可以包含来自其他插件的其他默认包,json-default
例如,等等。
只要命名空间与包名相关,您可以将Java语言使用的包名与Struts2框架中的包命名空间进行比较,您可能会发现它们相似,但它们绝对不同。例如,Struts2 使用的默认命名空间是""
在其他包/命名空间中找不到操作或结果名称时使用的。namespace="/"
如果您使用which 是应用程序的包根,这几乎是等效的。
不管你如何用 of 来命名你的根包default
,root
而不是用框架已经使用的名称,即struts-default
,如果你省略了这个namespace
属性,那么将使用默认的命名空间。这与 Java 类似,如果省略包声明,则使用默认包。
默认概念可能会通过其他术语传播,例如有默认操作、默认结果、默认拦截器堆栈等。该框架还利用名称默认来实现已知接口的默认实现,等等。单词default没有单数含义。通常,如果您在代码中省略某些内容,那么框架将使用它的默认设置。