❮ 上一节
下一节 ❯
Struts 2 - 配置文件
本章将带您了解 Struts 2 应用程序所需的基本配置。在这里,我们将看到可以借助几个重要的配置文件(如 web.xml、struts.xml、strutsconfig.xml 和 struts.properties
)进行配置。
老实说,您只需使用 web.xml 和 struts.xml 配置文件即可开始工作(正如您在上一章中已经看到的那样,我们的示例使用这两个文件工作)。但是,为了让您了解,我们还将解释其他文件。
web.xml 文件
web.xml 配置文件是一个 J2EE 配置文件,它确定 servlet 容器如何处理 HTTP 请求的元素。它严格来说不是 Struts2 配置文件,但它是需要配置才能使 Struts2 工作的文件。
如前所述,此文件为任何 Web 应用程序提供入口点。Struts2 应用程序的入口点将是部署描述符 (web.xml) 中定义的过滤器。因此,我们将在 web.xml 中定义 FilterDispatcher 类的条目。需要在文件夹 WebContent/WEB-INF 下创建 web.xml 文件。
如果您在没有模板或生成它的工具(如 Eclipse 或 Maven2)的帮助下开始,这是您需要配置的第一个配置文件。
以下是我们在上一个示例中使用的 web.xml 文件的内容。
xmlns = "http://java.sun.com/xml/ns/javaee" xmlns:web = "http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation = "http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id = "WebApp_ID" version = "3.0"> org.apache.struts2.dispatcher.FilterDispatcher
请注意,我们将 Struts 2 过滤器映射到 /*,而不是 /*.action,这意味着所有 URL 都将被 struts 过滤器解析。我们将在阅读注解章节时介绍这一点。
Struts.xml 文件
struts.xml 文件包含您将在开发操作时修改的配置信息。此文件可用于覆盖应用程序的默认设置,例如 struts.devMode = false 和属性文件中定义的其他设置。此文件可以在文件夹 WEB-INF/classes 下创建。
让我们看一下我们在上一章中解释的 Hello World 示例中创建的 struts.xml 文件。
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
class = "com.tutorialspoint.struts2.HelloWorldAction" method = "execute">
<-- more actions can be listed here -->
<-- more packages can be listed here -->
首先要注意的是 DOCTYPE。所有 struts 配置文件都需要具有正确的文档类型,如我们的小示例所示。
例如,如果您的项目有三个域 - business_application、customer_application 和 staff_application,那么您可以创建三个包并将相关操作存储在相应的包中。
package 标记具有以下属性 −
Sr.No
属性 &描述
1
name (required)
包的唯一标识符
2
extends
此包从哪个包扩展而来?默认情况下,我们使用 struts-default 作为基础包。
3
abstract
如果标记为 true,则该包不可供最终用户使用。
4
namespace
操作的唯一命名空间
应使用 constant 标记以及 name 和 value 属性来覆盖 default.properties 中定义的以下任何属性,就像我们刚刚设置 struts.devMode 属性一样。设置 struts.devMode 属性允许我们在日志文件中看到更多调试消息。
我们定义 action 标签对应于我们想要访问的每个 URL,并且我们定义一个带有 execute() 方法的类,每当我们访问相应的 URL 时,都会访问该方法。
结果确定执行操作后返回到浏览器的内容。从操作返回的字符串应该是结果的名称。结果按上述操作配置,或作为"全局"结果,可用于包中的每个操作。结果具有可选的 name 和 type 属性。默认名称值为"success"。
Struts.xml 文件会随着时间的推移而变大,因此按包拆分是模块化它的一种方法,但 Struts 提供了另一种模块化 struts.xml 文件的方法。您可以将文件拆分为多个 xml 文件,并以以下方式导入它们。
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
我们尚未介绍的另一个配置文件是 struts-default.xml。此文件包含 Struts 的标准配置设置,对于 99.99% 的项目,您无需修改这些设置。因此,我们不会对此文件进行过多的详细介绍。如果您有兴趣,请查看 struts2-core-2.2.3.jar 文件中的 default.properties 文件。
Struts-config.xml 文件
struts-config.xml 配置文件是 Web 客户端中视图和模型组件之间的链接,但对于 99.99% 的项目,您不必触及这些设置。
配置文件基本上包含以下主要元素 −
Sr.No
拦截器 &描述
1
struts-config
这是配置文件的根节点。
2
form-beans
这是将 ActionForm 子类映射到名称的地方。您可以在 strutsconfig.xml 文件的其余部分甚至 JSP 页面上使用此名称作为 ActionForm 的别名。
3
global forwards
此部分将 Web 应用程序上的页面映射到名称。您可以使用此名称来引用实际页面。这样可以避免在网页上硬编码 URL。
4
action-mappings
这是您声明表单处理程序的地方,它们也称为操作映射。
5
controller
此部分配置 Struts 内部,在实际情况下很少使用。
6
plug-in
此部分告诉 Struts 在哪里找到您的属性文件,其中包含提示和错误消息
以下是示例 struts-config.xml 文件 −
"-//Apache Software Foundation//DTD Struts Configuration 1.0//EN"
"http://jakarta.apache.org/struts/dtds/struts-config_1_0.dtd">
path = "/login" type = "test.struts.LoginAction" >
debug = "3" maxFileSize = "1.618M" locale = "true" nocache = "true"/> 有关 struts-config.xml 文件的更多详细信息,请查阅您的 struts 文档。 Struts.properties 文件 此配置文件提供了一种更改框架默认行为的机制。实际上,struts.properties 配置文件中包含的所有属性也可以在 web.xml 中使用 init-param 进行配置,也可以使用 struts.xml 配置文件中的常量标记进行配置。但是,如果您希望将所有内容分开并使其更具体,则可以在文件夹 WEB-INF/classes 下创建此文件。 此文件中配置的值将覆盖 struts2-core-x.y.z.jar 发行版中包含的 default.properties 中配置的默认值。您可能考虑使用 struts.properties 文件更改几个属性 − ### 设置为 true 时,Struts 对开发人员来说会更加友好 struts.devMode = true ### 启用国际化文件的重新加载 struts.i18n.reload = true ### 启用 XML 配置文件的重新加载 struts.configuration.xml.reload = true ### 设置服务器运行的端口 struts.url.http.port = 8080 此处以 hash (#) 开头的任何行都将被视为注解,并且将被 Struts 2 忽略。 ❮ 上一节 下一节 ❯