📜  Struts 2-配置文件

📅  最后修改于: 2020-11-11 04:55:27             🧑  作者: Mango


本章将带您完成Struts 2应用程序所需的基本配置。在这里,我们将看到可以通过一些重要的配置文件(例如web.xml,struts.xml,strutsconfig.xmlstruts.properties)进行配置的内容。

坦白地说,您可以仅使用web.xmlstruts.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文件的内容。



   
   Struts 2
   
      index.jsp
   
   
   
      struts2
      
         org.apache.struts2.dispatcher.FilterDispatcher
      
   

   
      struts2
      /*
   


请注意,我们将Struts 2过滤器映射到/ * ,而不是/*.action ,这意味着所有URL将由struts过滤器解析。当我们浏览“注释”一章时,将进行介绍。

Struts.xml文件

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文件

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文档。

Struts.properties文件

此配置文件提供了一种更改框架默认行为的机制。实际上,也可以使用init-paramstruts.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将忽略它。