struts-config_1_2.dtd
: Elements - Entities - Source | Intro - Index
FRAMES / NO FRAMES
<!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. --> <!-- DTD for the Struts Application Configuration File To support validation of your configuration file, include the following DOCTYPE element at the beginning (after the "xml" declaration): <!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "http://struts.apache.org/dtds/struts-config_1_2.dtd"> $Id$ --> <!-- ========== Defined Types ============================================= --> <!-- An "AttributeName" is the identifier of a page, request, session, or application scope attribute. --> <!ENTITY % AttributeName "CDATA"> <!-- A "BeanName" is the identifier of a JavaBean, such as a form bean, and also serves as the name of the corresponding scripting variable and the name of the JSP attribute under which the bean is accessed. Therefore, it must conform to the rules for a Java identifier. --> <!ENTITY % BeanName "CDATA"> <!-- A "Boolean" is the string representation of a boolean (true or false) variable. --> <!ENTITY % Boolean "(true|false|yes|no)"> <!-- A "ClassName" is the fully qualified name of a Java class that is instantiated to provide the functionality of the enclosing element. --> <!ENTITY % ClassName "CDATA"> <!-- An "Integer" is a character string consisting solely of numeric digits, optionally preceeded by a minus sign, that can be converted to a 32-bit integer. --> <!ENTITY % Integer "CDATA"> <!-- A "Location" is a relative path, delimited by "/" characters, that defines the location of a resource relative to the location of the Struts configuration file itself. --> <!ENTITY % Location "#PCDATA"> <!-- A "PropName" is the name of a JavaBeans property, and must begin with a lower case letter and contain only characters that are legal in a Java identifier. --> <!ENTITY % PropName "CDATA"> <!-- A "RequestPath" is an module-relative URI path, beginning with a slash, that identifies a mapped resource (such as a JSP page or a servlet) within this web application. --> <!ENTITY % RequestPath "CDATA"> <!-- The name of a JSP bean scope within which such a form bean may be accessed. --> <!ENTITY % RequestScope "(request|session)"> <!-- ========== Top Level Elements ======================================== --> <!-- The "struts-config" element is the root of the configuration file hierarchy, and contains nested elements for all of the other configuration settings. --> <!ELEMENT struts-config (display-name?, description?, data-sources?, form-beans?, global-exceptions?, global-forwards?, action-mappings?, controller?, message-resources*, plug-in*)> <!ATTLIST struts-config id ID #IMPLIED> <!-- The "data-sources" element describes a set of DataSource objects [JDBC 2.0 Standard Extension]. The individual DataSource objects are configured through nested <data-source> elements. --> <!ELEMENT data-sources (data-source*)> <!ATTLIST data-sources id ID #IMPLIED> <!-- The "data-source" element describes a DataSource object [JDBC 2.0 Standard Extension] that will be instantiated, configured, and made available as a servlet context attribute (or "application-scope bean"). Any object can be specified so long as it implements [javax.sql.DataSource] and can be configured entirely from JavaBean properties. The following attributes are required: className The configuration bean for this DataSource object. If specified, the object must be a subclass of the default configuration bean. ["org.apache.struts.config.DataSourceConfig"] key Servlet context attribute key under which this data source will be stored. Default is the value specified by string constant defined by Globals.DATA_SOURCE_KEY. The application module prefix (if any) is appended to the key (${key}$prefix}). [org.apache.struts.Globals.DATA_SOURCE_KEY] NOTE: The application module prefix includes the leading slash, so the default datasource for a module named "foo" is stored under "org.apache.struts.action.DATA_SOURCE/foo". type Fully qualified Java class name for this data source object. The class must implement DataSource [javax.sql.DataSource], and the object must be configurable entirely from JavaBean properties. --> <!ELEMENT data-source (set-property*)> <!ATTLIST data-source id ID #IMPLIED> <!ATTLIST data-source className %ClassName; #IMPLIED> <!ATTLIST data-source key %AttributeName; #IMPLIED> <!ATTLIST data-source type %ClassName; #REQUIRED> <!-- The "form-beans" element describes the set of form bean descriptors for this module. The following attributes are defined: type Fully qualified Java class to use when instantiating ActionFormBean objects. If specified, the object must be a subclass of the default class type. WARNING: For Struts 1.0, this value is ignored. You can set the default implementation class name with the "formBean" initialization parameter to the Struts controller servlet. --> <!ELEMENT form-beans (form-bean*)> <!ATTLIST form-beans id ID #IMPLIED> <!ATTLIST form-beans type %ClassName; #IMPLIED> <!-- The "form-bean" element describes an ActionForm subclass [org.apache.struts.action.ActionForm] that can be referenced by an "action" element. The "form-bean" element describes a particular form bean, which is a JavaBean that implements the org.apache.struts.action.ActionForm class. The following attributes are defined: className The configuration bean for this form bean object. If specified, the object must be a subclass of the default configuration bean. ["org.apache.struts.config.FormBeanConfig"] name The unique identifier for this form bean. Referenced by the <action> element to specify which form bean to use with its request. type Fully qualified Java class name of the ActionForm subclass to use with this form bean. --> <!ELEMENT form-bean (icon?, display-name?, description?, set-property*, form-property*)> <!ATTLIST form-bean id ID #IMPLIED> <!ATTLIST form-bean className %ClassName; #IMPLIED> <!ATTLIST form-bean dynamic %Boolean; #IMPLIED> <!ATTLIST form-bean name %BeanName; #REQUIRED> <!ATTLIST form-bean type %ClassName; #REQUIRED> <!-- The "form-property" element describes a JavaBean property that can be used to configure an instance of a DynaActionForm or a subclass thereof. This element is only utilized when the "type" attribute of the enclosing "form-bean" element is [org.apache.struts.action.DynaActionForm] or a subclass of DynaActionForm. If a custom DynaActionForm subclass is used, then the "dynamic" attribute of the enclosing <form-bean> element must be set to "true". Since Struts 1.1. className The configuration bean for this form property object. If specified, the object must be a subclass of the default configuration bean. ["org.apache.struts.config.FormPropertyConfig"] initial String representation of the initial value for this property. If not specified, primitives will be initialized to zero and objects initialized to the zero-argument instantiation of that object class. For example, Strings will be initialized to "" name The name of the JavaBean property described by this element. size The number of array elements to create if the value of the "type" attribute specifies an array, but there is no value specified for the "initial" attribute. type Fully qualified Java class name of the field underlying this property, optionally followed by "[]" to indicate that the field is indexed. --> <!ELEMENT form-property (set-property*)> <!ATTLIST form-property className %ClassName; #IMPLIED> <!ATTLIST form-property initial CDATA #IMPLIED> <!ATTLIST form-property name %PropName; #REQUIRED> <!ATTLIST form-property size %Integer; #IMPLIED> <!ATTLIST form-property type %ClassName; #REQUIRED> <!-- The "global-exceptions" element describes a set of exceptions that might be thrown by an Action object. The handling of individual exception types is configured through nested exception elements. An <action> element may override a global exception handler by registering a local exception handler for the same exception type. Since Struts 1.1. --> <!ELEMENT global-exceptions (exception*)> <!ATTLIST global-exceptions id ID #IMPLIED> <!-- The "exception" element registers an ExceptionHandler for an exception type. The following attributes are defined: bundle Servlet context attribute for the message resources bundle associated with this handler. The default attribute is the value specified by the string constant declared at Globals.MESSAGES_KEY. [org.apache.struts.Globals.MESSAGES_KEY] className The configuration bean for this ExceptionHandler object. If specified, className must be a subclass of the default configuration bean ["org.apache.struts.config.ExceptionConfig"] handler Fully qualified Java class name for this exception handler. ["org.apache.struts.action.ExceptionHandler"] key The key to use with this handler's message resource bundle that will retrieve the error message template for this exception. path The module-relative URI to the resource that will complete the request/response if this exception occurs. scope The context ("request" or "session") that is used to access the ActionError object [org.apache.struts.action.ActionError] for this exception. type Fully qualified Java class name of the exception type to register with this handler. --> <!ELEMENT exception (icon?, display-name?, description?, set-property*)> <!ATTLIST exception id ID #IMPLIED> <!ATTLIST exception bundle %AttributeName; #IMPLIED> <!ATTLIST exception className %ClassName; #IMPLIED> <!ATTLIST exception handler %ClassName; #IMPLIED> <!ATTLIST exception key CDATA #REQUIRED> <!ATTLIST exception path %RequestPath; #IMPLIED> <!ATTLIST exception scope CDATA #IMPLIED> <!ATTLIST exception type %ClassName; #REQUIRED> <!-- The "global-forwards" element describes a set of ActionForward objects [org.apache.struts.action.ActionForward] that are available to all Action objects as a return value. The individual ActionForwards are configured through nested <forward> elements. An <action> element may override a global forward by defining a local <forward> of the same name. type Fully qualified Java class to use when instantiating ActionForward objects. If specified, the object must be a subclass of the default class type. WARNING: For Struts 1.0, this value is ignored. You can set the default implementation class name with the "forward" initialization parameter to the Struts controller servlet. --> <!ELEMENT global-forwards (forward*)> <!ATTLIST global-forwards id ID #IMPLIED> <!ATTLIST global-forwards type %ClassName; #IMPLIED> <!-- The "forward" element describes an ActionForward that is to be made available to an Action as a return value. An ActionForward is referenced by a logical name and encapsulates a URI. A "forward" element may be used to describe both global and local ActionForwards. Global forwards are available to all the Action objects in the module. Local forwards can be nested within an <action> element and only available to an Action object when it is invoked through that ActionMapping. className Fully qualified Java class name of ActionForward subclass to use for this object. ["org.apache.struts.action.ActionForward"] contextRelative Set this to "true" if, in a modular application, the path attribute starts with a slash "/" and should be considered relative to the entire web application rather than the module. Since Struts 1.1. DEPRECATED. [false] module The module prefix to use with this path. This value should begin with a slash ("/"). name The unique identifier for this forward. Referenced by the Action object at runtime to select - by its logical name - the resource that should complete the request/response. path The module-relative or context-relative path to the resources that is encapsulated by the logical name of this ActionForward. If the path is to be considered context-relative when used in a modular application, then the contextRelative attribute should be set to "true". This value should begin with a slash ("/") character. redirect Set to "true" if a redirect instruction should be issued to the user-agent so that a new request is issued for this forward's resource. If true, RequestDispatcher.Redirect is called. If "false", RequestDispatcher.forward is called instead. [false] --> <!ELEMENT forward (icon?, display-name?, description?, set-property*)> <!ATTLIST forward id ID #IMPLIED> <!ATTLIST forward className %ClassName; #IMPLIED> <!ATTLIST forward contextRelative %Boolean; #IMPLIED> <!ATTLIST forward module %RequestPath; #IMPLIED> <!ATTLIST forward name CDATA #REQUIRED> <!ATTLIST forward path %RequestPath; #REQUIRED> <!ATTLIST forward redirect %Boolean; #IMPLIED> <!-- The "action-mappings" element describes a set of ActionMapping objects [org.apache.struts.action.ActionMapping] that are available to process requests matching the url-pattern our ActionServlet registered with the container. The individual ActionMappings are configured through nested <action> elements. The following attributes are defined: type Fully qualified Java class to use when instantiating ActionMapping objects. If specified, the object must be a subclass of the default class type. WARNING: For Struts 1.0, this value is ignored. You can set the default implementation class name with the "mapping" initialization parameter to the Struts controller servlet. --> <!ELEMENT action-mappings (action*)> <!ATTLIST action-mappings id ID #IMPLIED> <!ATTLIST action-mappings type %ClassName; #IMPLIED> <!-- The "action" element describes an ActionMapping object that is to be used to process a request for a specific module-relative URI. The following attributes are defined: attribute Name of the request-scope or session-scope attribute that is used to access our ActionForm bean, if it is other than the bean's specified "name". Optional if "name" is specified, else not valid. className The fully qualified Java class name of the ActionMapping subclass to use for this action mapping object. Defaults to the type specified by the enclosing <action-mappings> element or to "org.apache.struts.action.ActionMapping" if not specified. ["org.apache.struts.action.ActionMapping"] forward Module-relative path of the servlet or other resource that will process this request, instead of the Action class specified by "type". The path WILL NOT be processed through the "forwardPattern" attribute that is configured on the "controller" element for this module. Exactly one of "forward", "include", or "type" must be specified. include Module-relative path of the servlet or other resource that will process this request, instead of the Action class specified by "type". The path WILL NOT be processed through the "forwardPattern" attribute that is configured on the "controller" element for this module. Exactly one of "forward", "include", or "type" must be specified. input Module-relative path of the action or other resource to which control should be returned if a validation error is encountered. Valid only when "name" is specified. Required if "name" is specified and the input bean returns validation errors. Optional if "name" is specified and the input bean does not return validation errors. name Name of the form bean, if any, that is associated with this action mapping. path The module-relative path of the submitted request, starting with a "/" character, and without the filename extension if extension mapping is used. NOTE: Do *not* include a period in your path name, because it will look like a filename extension and cause your Action to not be located. parameter General-purpose configuration parameter that can be used to pass extra information to the Action object selected by this action mapping. prefix Prefix used to match request parameter names to ActionForm property names, if any. Optional if "name" is specified, else not allowed. roles Comma-delimited list of security role names that are allowed access to this ActionMapping object. Since Struts 1.1. scope The context ("request" or "session") that is used to access our ActionForm bean, if any. Optional if "name" is specified, else not valid. [session] suffix Suffix used to match request parameter names to ActionForm bean property names, if any. Optional if "name" is specified, else not valid. type Fully qualified Java class name of the Action subclass [org.apache.struts.action.Action] that will process requests for this action mapping. Not valid if either the "forward" or "include" attribute is specified. Exactly one of "forward", "include", or "type" must be specified. unknown Set to "true" if this object should be configured as the default action mapping for this module. If a request does not match another object, it will be passed to the ActionMapping object with unknown set to "true". Only one ActionMapping can be marked as "unknown" within a module. [false] validate Set to "true" if the validate method of the ActionForm bean should be called prior to calling the Action object for this action mapping, or set to "false" if you do not want the validate method called. [true] --> <!ELEMENT action (icon?, display-name?, description?, set-property*, exception*, forward*)> <!ATTLIST action id ID #IMPLIED> <!ATTLIST action attribute %BeanName; #IMPLIED> <!ATTLIST action className %ClassName; #IMPLIED> <!ATTLIST action forward %RequestPath; #IMPLIED> <!ATTLIST action include %RequestPath; #IMPLIED> <!ATTLIST action input %RequestPath; #IMPLIED> <!ATTLIST action name %BeanName; #IMPLIED> <!ATTLIST action parameter CDATA #IMPLIED> <!ATTLIST action path %RequestPath; #REQUIRED> <!ATTLIST action prefix CDATA #IMPLIED> <!ATTLIST action roles CDATA #IMPLIED> <!ATTLIST action scope %RequestScope; #IMPLIED> <!ATTLIST action suffix CDATA #IMPLIED> <!ATTLIST action type %ClassName; #IMPLIED> <!ATTLIST action unknown %Boolean; #IMPLIED> <!ATTLIST action validate %Boolean; #IMPLIED> <!-- The "controller" element describes the ControllerConfig bean [org.apache.struts.config.ControllerConfig] that encapsulates a module's runtime configuration. The following attributes are defined: bufferSize The size of the input buffer used when processing file uploads. [4096] className Fully qualified Java class name of the ControllerConfig subclass for this controller object. If specified, the object must be a subclass of the default class. ["org.apache.struts.config.ControllerConfig"] contentType Default content type (and optional character encoding) to be set on each response. May be overridden by the Action, JSP, or other resource to which the request is forwarded. ["text/html"] forwardPattern Replacement pattern defining how the "path" attribute of a <forward> element is mapped to a context-relative URL when it starts with a slash (and when the contextRelative property is false). This value may consist of any combination of the following: - "$M" - Replaced by the module prefix of this module - "$P" - Replaced by the "path" attribute of the selected "forward" element - "$$" - Causes a literal dollar sign to be rendered - "$x" - (Where "x" is any character not defined above) Silently swallowed, reserved for future use If not specified, the default forwardPattern is "$M$P", which is consistent with the previous behavior of forwards. Since Struts 1.1. ["$M$P"] inputForward Set to "true" if you want the "input" attribute of <action> elements to be the name of a local or global ActionForward, which will then be used to calculate the ultimate URL. Set to "false" (the default) to treat the "input" parameter of <action> elements as a module-relative path to the resource to be used as the input form. Since Struts 1.1. [false] locale Set to "true" if you want a Locale object stored in the user's session if not already present. [true] maxFileSize The maximum size (in bytes) of a file to be accepted as a file upload. Can be expressed as a number followed by a "K", "M", or "G", which are interpreted to mean kilobytes, megabytes, or gigabytes, respectively. ["250M"] memFileSize The maximum size (in bytes) of a file whose contents will be retained in memory after uploading. Files larger than this threshold will be written to some alternative storage medium, typically a hard disk. Can be expressed as a number followed by a "K", "M", or "G", which are interpreted to mean kilobytes, megabytes, or gigabytes, respectively. ["256K"] multipartClass The fully qualified Java class name of the multipart request handler class to be used with this module. ["org.apache.struts.upload.CommonsMultipartRequestHandler"] nocache Set to "true" if you want the controller to add HTTP headers for defeating caching to every response from this module. [false] pagePattern Replacement pattern defining how the "page" attribute of custom tags using it is mapped to a context-relative URL of the corresponding resource. This value may consist of any combination of the following: - "$M" - Replaced by the module prefix of this module - "$P" - Replaced by the value of the "page" attribute - "$$" - Causes a literal dollar sign to be rendered - "$x" - (Where "x" is any character not defined above) Silently swallowed, reserved for future use If not specified, the default forwardPattern is "$M$P", which is consistent with previous hard coded behavior of URL evaluation for "page" attributes. ["$M$P"] processorClass The fully qualified Java class name of the RequestProcessor subclass to be used with this module. ["org.apache.struts.action.RequestProcessor"] tempDir Temporary working directory to use when processing file uploads. [{Directory provided by servlet container}] --> <!ELEMENT controller (set-property*)> <!ATTLIST controller id ID #IMPLIED> <!ATTLIST controller bufferSize %Integer; #IMPLIED> <!ATTLIST controller className %ClassName; #IMPLIED> <!ATTLIST controller contentType CDATA #IMPLIED> <!ATTLIST controller forwardPattern CDATA #IMPLIED> <!ATTLIST controller inputForward %Boolean; #IMPLIED> <!ATTLIST controller locale %Boolean; #IMPLIED> <!ATTLIST controller maxFileSize CDATA #IMPLIED> <!ATTLIST controller memFileSize CDATA #IMPLIED> <!ATTLIST controller multipartClass %ClassName; #IMPLIED> <!ATTLIST controller nocache %Boolean; #IMPLIED> <!ATTLIST controller pagePattern CDATA #IMPLIED> <!ATTLIST controller processorClass %ClassName; #IMPLIED> <!ATTLIST controller tempDir CDATA #IMPLIED> <!-- The "message-resources" element describes a MessageResources object with message templates for this module. The following attributes are defined: className The configuration bean for this message resources object. If specified, the object must be a subclass of the default configuration bean. ["org.apache.struts.config.MessageResourcesConfig"] factory Fully qualified Java class name of the MessageResourcesFactory subclass to use for this message resources object. ["org.apache.struts.util.PropertyMessageResourcesFactory"] key Servlet context attribute under which this message resources bundle will be stored. The default attribute is the value specified by the string constant at [Globals.MESSAGES_KEY]. The module prefix (if any) is appended to the key (${key}${prefix}). [org.apache.struts.Globals.MESSAGES_KEY] NOTE: The module prefix includes the leading slash, so the default message resource bundle for a module named "foo" is stored under "org.apache.struts.action.MESSAGE/foo". null Set to "true" if you want our message resources to return a null string for unknown message keys, or "false" to return a message with the bad key value. parameter Configuration parameter to be passed to the createResources method of our factory object. --> <!ELEMENT message-resources (set-property*)> <!ATTLIST message-resources id ID #IMPLIED> <!ATTLIST message-resources className %ClassName; #IMPLIED> <!ATTLIST message-resources factory %ClassName; #IMPLIED> <!ATTLIST message-resources key %AttributeName; #IMPLIED> <!ATTLIST message-resources null %Boolean; #IMPLIED> <!ATTLIST message-resources parameter CDATA #REQUIRED> <!-- The "plug-in" element specifies the fully qualified class name of a general-purpose application plug-in module that receives notification of application startup and shutdown events. An instance of the specified class is created for each element, and can be configured with nested <set-property> elements. The following attributes are supported: className Fully qualified Java class name of the plug-in class; must implement [org.apache.struts.action.PlugIn]. --> <!ELEMENT plug-in (set-property*)> <!ATTLIST plug-in id ID #IMPLIED> <!ATTLIST plug-in className %ClassName; #REQUIRED> <!-- ========== Subordinate Elements ====================================== --> <!-- The "description" element contains descriptive (paragraph length) text about the surrounding element, suitable for use in GUI tools. --> <!ELEMENT description (#PCDATA)> <!ATTLIST description id ID #IMPLIED> <!-- The "display-name" element contains a short (one line) description of the surrounding element, suitable for use in GUI tools. --> <!ELEMENT display-name (#PCDATA)> <!ATTLIST display-name id ID #IMPLIED> <!-- The "icon" element contains a small-icon and large-icon element which specify the location, relative to the Struts configuration file, for small and large images used to represent the surrounding element in GUI tools. --> <!ELEMENT icon (small-icon?, large-icon?)> <!ATTLIST icon id ID #IMPLIED> <!-- The "large-icon" element specifies the location, relative to the Struts configuration file, of a resource containing a large (32x32 pixel) icon image. --> <!ELEMENT large-icon (%Location;)> <!ATTLIST large-icon id ID #IMPLIED> <!-- The "set-property" element specifies the method name and initial value of an additional JavaBean configuration property. When the object representing the surrounding element is instantiated, the accessor for the indicated property is called and passed the indicated value. The "set-property" element is especially useful when a custom subclass is used with <data-source>, <forward>, <action>, or <plug-in> elements. The subclass can be passed whatever other properties may be required to configure the object without changing how the struts-config is parsed. property Name of the JavaBeans property whose setter method will be called. value String representation of the value to which this property will be set, after suitable type conversion --> <!ELEMENT set-property EMPTY> <!ATTLIST set-property id ID #IMPLIED> <!ATTLIST set-property property %PropName; #REQUIRED> <!ATTLIST set-property value CDATA #REQUIRED> <!-- The "small-icon" element specifies the location, relative to the Struts configuration file, of a resource containing a small (16x16 pixel) icon image. --> <!ELEMENT small-icon (%Location;)> <!ATTLIST small-icon id ID #IMPLIED>