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

标签 java configuration struts2 package struts-config

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

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

<struts>
    <package name="default" extends="struts-default">
        <action name="*Register" method="{1}" class="RegisterAction">
            <result name="populate">/register.jsp</result>
</package>
</struts>

最佳答案

Struts2 中的包与 Java 中的包略有不同,但用法是相同的,将代码分成不同的模块,使用它们自己的命名空间,因此不会与 Action 名称冲突。为了更好地理解包和命名空间的概念,您可以查看 Struts 2 Namespace configuration example and explanation教程。

如果您将类保存在源文件夹中并且它不属于包,您迟早会遇到命名新类和繁重代码管理的问题。

Struts2 框架有一个名为 struts-default 的包它包含所有必要的东西,可以通过将这个名称放入 extends 来扩展你的包,从而在你的应用程序配置中使用。你的 <package> 的属性标签。您还可以包括来自其他插件的其他 默认 包,即 json-default

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

default 命名根包并不重要的 root但不是框架已经使用的名称,即 struts-default , 如果省略 namespace属性,则将使用默认命名空间。这与 Java 类似,如果省略包声明,则使用默认包。

default 的概念可能会通过其他术语传播,例如有默认操作、默认结果、默认拦截器堆栈等。该框架还利用名称 default 来表示已知接口(interface)的默认实现,等等。 default 一词没有单数含义。通常,如果您在代码中省略了某些内容,那么框架将使用它的默认设置。

关于java - struts.xml 中 Struts 的默认包名称是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16621970/

相关文章:

java - 如何在 Java 中解析基本查询(类似于 Google 数据)?

java - 如何在java中打印i-net Crystel Clear Report ex :(report. rpt)而不打开打印对话框博客

java - 将 AcionListener 与 GUI 分离

java - 我如何使用 Kafka Consumer 的动态主题

Windows 中的 Python 配置 - 模块位置 - pip 与 Eclipse/Liclipse

azure - 通配符 SSL 映射多个 Azure 应用服务应用程序

intellij-idea - 强制 IntelliJ 使用另一个主目录?

java - Web 应用程序问题的 Struts2 web.xml 文件过滤器 jar

java - Jboss 5.1,Struts 2.3.14.2 "Unable to read class..."

java - 在 Intellij Idea Terminal 中创建常用命令的缩写