📅  最后修改于: 2020-11-11 04:55:27             🧑  作者: Mango
本章将带您完成Struts 2应用程序所需的基本配置。在这里,我们将看到可以通过一些重要的配置文件(例如web.xml,struts.xml,strutsconfig.xml和struts.properties)进行配置的内容。
坦白地说,您可以仅使用web.xml和struts.xml配置文件来开始工作(就像您在上一章中看到的,我们的示例使用这两个文件一样)。但是,据您所知,我们还将说明其他文件。
web.xml配置文件是一个J2EE配置文件,该文件确定servlet容器如何处理HTTP请求的元素。严格来说,它不是Struts2配置文件,但它是需要配置才能使Struts2正常工作的文件。
如前所述,该文件为任何Web应用程序提供了一个入口点。 Struts2应用程序的入口点将是在部署描述符(web.xml)中定义的过滤器。因此,我们将在web.xml中定义FilterDispatcher类的条目。需要在文件夹WebContent / WEB-INF下创建web.xml文件。
如果在没有模板或生成它的工具(例如Eclipse或Maven2)的帮助下启动,则这是您需要配置的第一个配置文件。
以下是我们在上一个示例中使用的web.xml文件的内容。
Struts 2
index.jsp
struts2
org.apache.struts2.dispatcher.FilterDispatcher
struts2
/*
请注意,我们将Struts 2过滤器映射到/ * ,而不是/*.action ,这意味着所有URL将由struts过滤器解析。当我们浏览“注释”一章时,将进行介绍。
struts.xml文件包含在开发操作时将要修改的配置信息。该文件可用于覆盖应用程序的默认设置,例如struts.devMode = false以及在属性文件中定义的其他设置。可以在文件夹WEB-INF / classes下创建此文件。
让我们看一下在上一章介绍的Hello World示例中创建的struts.xml文件。
/HelloWorld.jsp
首先要注意的是DOCTYPE 。如我们的小示例所示,所有的struts配置文件都必须具有正确的doctype。
例如,如果您的项目具有三个域-business_application,customer_application和staff_application,则可以创建三个包并将关联的操作存储在适当的包中。
package标签具有以下属性-
Sr.No | Attribute & Description |
---|---|
1 |
name (required) The unique identifier for the package |
2 |
extends Which package does this package extend from? By default, we use struts-default as the base package. |
3 |
abstract If marked true, the package is not available for end user consumption. |
4 |
namespace Unique namespace for the actions |
常量标签以及名称和值属性应用于覆盖default.properties中定义的以下任何属性,就像我们只是设置struts.devMode属性一样。设置struts.devMode属性使我们可以在日志文件中查看更多调试消息。
我们定义了对应于我们要访问的每个URL的动作标签,并且我们使用execute()方法定义了一个类,只要我们访问相应的URL就可以访问该类。
结果确定执行动作后返回到浏览器的内容。从操作返回的字符串应该是结果的名称。结果是按照上述操作配置的,也可以配置为可用于包中每个操作的“全局”结果。结果具有可选的名称和类型属性。默认名称值为“成功”。
Struts.xml文件会随着时间的增长而增长,因此通过打包将其拆分是一种模块化的方法,但是Struts提供了另一种模块化struts.xml文件的方法。您可以将文件拆分为多个xml文件,然后按以下方式导入它们。
我们尚未介绍的另一个配置文件是struts-default.xml。该文件包含Struts的标准配置设置,您无需为99.99%的项目触摸这些设置。因此,我们不会在此文件上介绍太多细节。如果您有兴趣,请查看struts2-core-2.2.3.jar文件中的default.properties文件。
struts-config.xml配置文件是Web客户端中View和Model组件之间的链接,但对于99.99%的项目,您不必触摸这些设置。
配置文件基本上包含以下主要元素-
Sr.No | Interceptor & Description |
---|---|
1 |
struts-config This is the root node of the configuration file. |
2 |
form-beans This is where you map your ActionForm subclass to a name. You use this name as an alias for your ActionForm throughout the rest of the strutsconfig.xml file, and even on your JSP pages. |
3 |
global forwards This section maps a page on your webapp to a name. You can use this name to refer to the actual page. This avoids hardcoding URLs on your web pages. |
4 |
action-mappings This is where you declare form handlers and they are also known as action mappings. |
5 |
controller This section configures Struts internals and rarely used in practical situations. |
6 |
plug-in This section tells Struts where to find your properties files, which contain prompts and error messages |
以下是示例struts-config.xml文件-
有关struts-config.xml文件的更多详细信息,请检查您的struts文档。
此配置文件提供了一种更改框架默认行为的机制。实际上,也可以使用init-param在struts.properties配置文件中包含的所有属性,也可以使用struts.xml配置文件中的constant标签在web.xml中进行配置。但是,如果您希望将各个部分分开并且更加具体,则可以在文件夹WEB-INF / classes下创建此文件。
此文件中配置的值将覆盖struts2-core-xyzjar发行版中包含的default.properties中配置的默认值。您可以考虑使用struts.properties文件更改几个属性-
### When set to true, Struts will act much more friendly for developers
struts.devMode = true
### Enables reloading of internationalization files
struts.i18n.reload = true
### Enables reloading of XML configuration files
struts.configuration.xml.reload = true
### Sets the port that the server is run on
struts.url.http.port = 8080
在这里,任何以哈希(#)开头的行都将被视为注释,并且Struts 2将忽略它。