+++ /dev/null
-<?xml version="1.0" encoding="ISO-8859-1"?>\r
-\r
-\r
-<!--\r
- DTD for the Struts Application Configuration File, Version 1.0\r
-\r
- To support validation of your configuration file, include the following\r
- DOCTYPE element at the beginning (after the "xml" declaration):\r
-\r
- <!DOCTYPE struts-config PUBLIC\r
- "-//Apache Software Foundation//DTD Struts Configuration 1.0//EN"\r
- "http://jakarta.apache.org/struts/dtds/struts-config_1_0.dtd">\r
-\r
- $Id: struts-config_1_0.dtd,v 1.5 2001/06/02 18:20:47 craigmcc Exp $\r
--->\r
-\r
-\r
-<!-- ========== Defined Types ============================================= -->\r
-\r
-\r
-<!-- A "BeanName" is the identifier of a JavaBean, such as a form bean,\r
- and also serves as the name of the corresponding scripting variable\r
- and the name of the JSP attribute under which the bean is accessed.\r
- Therefore, it must conform to the rules for a Java identifier.\r
--->\r
-<!ENTITY % BeanName "CDATA">\r
-\r
-\r
-<!-- A "Boolean" is the string representation of a boolean (true or false)\r
- variable.\r
--->\r
-<!ENTITY % Boolean "(true|false|yes|no)">\r
-\r
-\r
-<!-- A "ClassName" is the fully qualified name of a Java class that is\r
- instantiated to provide the functionality of the enclosing element.\r
--->\r
-<!ENTITY % ClassName "CDATA">\r
-\r
-\r
-<!-- An "Integer" is a character string consisting solely of numeric digits,\r
- optionally preceeded by a minus sign, that can be converted to a\r
- 32-bit integer.\r
--->\r
-<!ENTITY % Integer "CDATA">\r
-\r
-\r
-<!-- A "Location" is a relative path, delimited by "/" characters, that\r
- defines the location of a resource relative to the location of the\r
- Struts configuration file itself.\r
--->\r
-<!ENTITY % Location "#PCDATA">\r
-\r
-\r
-<!-- A "PropName" is the name of a JavaBeans property, and must begin with\r
- a lower case letter and contain only characters that are legal in a\r
- Java identifier.\r
--->\r
-<!ENTITY % PropName "CDATA">\r
-\r
-\r
-<!-- A "RequestPath" is a context-relative URI path, beginning with a slash,\r
- that identifies a mapped resource (such as a JSP page or a servlet)\r
- within this web application.\r
--->\r
-<!ENTITY % RequestPath "CDATA">\r
-\r
-\r
-<!-- The name of a JSP bean scope within which such a form bean may be\r
- accessed.\r
--->\r
-<!ENTITY % RequestScope "(request|session)">\r
-\r
-\r
-<!-- ========== Top Level Elements ======================================== -->\r
-\r
-\r
-<!-- The "struts-config" element is the root of the configuration file\r
- hierarchy, and contains nested elements for all of the other\r
- configuration settings.\r
--->\r
-<!ELEMENT struts-config (data-sources?, form-beans?, global-forwards?, action-mappings?)>\r
-<!ATTLIST struts-config id ID #IMPLIED>\r
-\r
-\r
-<!-- The "data-sources" element describes a set of JDBC 2.0 Standard Extension\r
- data source objects which will be configured according to the nested\r
- "data-source" elements found inside.\r
--->\r
-\r
-<!ELEMENT data-sources (data-source*)>\r
-<!ATTLIST data-sources id ID #IMPLIED>\r
-\r
-\r
-<!-- The "data-source" element describes a JDBC 2.0 Standard Extension data\r
- source object (that implements javax.sql.DataSource) which will be\r
- configured according to the properties and nested elements found here,\r
- and made available as a servlet context attribute (i.e. application\r
- scope bean). The following attributes are required:\r
-\r
- key Servlet context attribute key under which this data\r
- source will be stored. Default is the value specified\r
- by string constant Action.DATA_SOURCE_KEY.\r
-\r
- type Fully qualified Java class name of the implementation\r
- class (must implement javax.sql.DataSource). Default\r
- value is 'org.apache.struts.util.GenericDataSource'.\r
-\r
- NOTE: The following attributes are defined by the default data source\r
- implementation, and only take effect for that class or subclasses of\r
- that class.\r
-\r
- WARNING: The use of these attributes is deprecated. You should use\r
- nested <set-property> elements to configure *all* properties of\r
- your data source implementation.\r
-\r
- autoCommit The default auto-commit state for newly created\r
- connections.\r
-\r
- description The description of this data source.\r
-\r
- driverClass The Java class name of the JDBC driver to be used.\r
- [REQUIRED]\r
-\r
- loginTimeout The maximum number of seconds to wait for a connection\r
- to be created or returned. Default is driver dependent.\r
-\r
- maxCount The maximum number of connections to be created.\r
-\r
- minCount The minimum number of connections to be created.\r
-\r
- password The database password to use when connecting. [REQUIRED]\r
-\r
- readOnly The default read-only state for newly created\r
- connections.\r
-\r
- url The JDBC URL to use when connecting. [REQUIRED]\r
-\r
- user The database username to use when connecting. [REQUIRED]\r
-\r
--->\r
-<!ELEMENT data-source (set-property*)>\r
-<!ATTLIST data-source id ID #IMPLIED>\r
-<!ATTLIST data-source key %BeanName; #IMPLIED>\r
-<!ATTLIST data-source type %ClassName; #IMPLIED>\r
-<!-- All of the following attributes are deprecated. Use a nested -->\r
-<!-- set-property element to configure data source properties. -->\r
-<!ATTLIST data-source autoCommit %Boolean; #IMPLIED>\r
-<!ATTLIST data-source description CDATA #IMPLIED>\r
-<!ATTLIST data-source driverClass %ClassName; #IMPLIED>\r
-<!ATTLIST data-source loginTimeout %Integer; #IMPLIED>\r
-<!ATTLIST data-source maxCount %Integer; #IMPLIED>\r
-<!ATTLIST data-source minCount %Integer; #IMPLIED>\r
-<!ATTLIST data-source password CDATA #IMPLIED>\r
-<!ATTLIST data-source readOnly %Boolean; #IMPLIED>\r
-<!ATTLIST data-source url CDATA #IMPLIED>\r
-<!ATTLIST data-source user CDATA #IMPLIED>\r
-\r
-\r
-<!-- The "form-beans" element is the root of the set of form bean descriptors\r
- for this application. The following attributes are defined:\r
-\r
- type Fully qualified Java class name of the implementation\r
- class used for ActionFormBean objects. DEPRECATED.\r
-\r
- WARNING: For Struts 1.0, this value is ignored. You\r
- can set the default implementation class name with the\r
- "formBean" initialization parameter to the Struts\r
- controller servlet.\r
--->\r
-<!ELEMENT form-beans (form-bean*)>\r
-<!ATTLIST form-beans id ID #IMPLIED>\r
-<!ATTLIST form-beans type %ClassName; "org.apache.struts.action.ActionFormBean">\r
-\r
-\r
-<!-- The "form-bean" element describes a particular form bean, which is a\r
- JavaBean that implements the org.apache.struts.action.ActionForm\r
- class. The following attributes are defined:\r
-\r
- className Fully qualified Java class name of the ActionFormBean\r
- implementation class to use. Defaults to the value\r
- configured as the "formBean" initialization parameter\r
- to the Struts controller servlet.\r
-\r
- name Unique identifier of this bean, used to reference it\r
- in corresponding action mappings.\r
-\r
- type Fully qualified Java class name of the implementation\r
- class to be used or generated\r
--->\r
-<!ELEMENT form-bean (icon?, display-name?, description?, set-property*)>\r
-<!ATTLIST form-bean id ID #IMPLIED>\r
-<!ATTLIST form-bean className %ClassName; #IMPLIED>\r
-<!ATTLIST form-bean name %BeanName; #REQUIRED>\r
-<!ATTLIST form-bean type %ClassName; #REQUIRED>\r
-\r
-\r
-<!-- The "global-forwards" element configures the global mappings of logical\r
- names (used within the application) to mappable resources (identified\r
- by context-relative URI paths). A global "forward" with a particular name\r
- can be locally overridden by defining a "forward" of the same name within\r
- an "action" element. The following attribute are defined:\r
-\r
- type Fully qualified Java class name of the implementation\r
- class used for ActionForward objects. DEPRECATED.\r
-\r
- WARNING: For Struts 1.0, this value is ignored. You\r
- can set the default implementation class name with the\r
- "forward" initialization parameter to the Struts\r
- controller servlet.\r
--->\r
-<!ELEMENT global-forwards (forward*)>\r
-<!ATTLIST global-forwards id ID #IMPLIED>\r
-<!ATTLIST global-forwards type %ClassName; "org.apache.struts.action.ActionForward">\r
-\r
-\r
-<!-- The "forward" element describes a mapping of a logical name (used within\r
- the application) to a mappable resource identified by a context-relative\r
- URI path. The following attributes are defined:\r
-\r
- className Fully qualified Java class name of the ActionForward\r
- implementation class to use. Defaults to the value\r
- configured as the "forward" initialization parameter\r
- to the Struts controller servlet.\r
-\r
- name Unique identifier of this forward, used to reference it\r
- in application action classes.\r
-\r
- path The context-relative path of the mapped resource.\r
-\r
- redirect Set to "true" if sendRedirect() should be used to forward\r
- to this resource, or "false" in order to use\r
- RequestDispatcher.forward() instead.\r
--->\r
-<!ELEMENT forward (icon?, display-name?, description?, set-property*)>\r
-<!ATTLIST forward id ID #IMPLIED>\r
-<!ATTLIST forward className %ClassName; #IMPLIED>\r
-<!ATTLIST forward name CDATA #REQUIRED>\r
-<!ATTLIST forward path %RequestPath; #REQUIRED>\r
-<!ATTLIST forward redirect %Boolean; #IMPLIED>\r
-\r
-\r
-<!-- The "action-mappings" element configures the mappings from submitted\r
- request paths to the corresponding Action classes that should be\r
- used to process these requests. The following attributes are\r
- defined:\r
-\r
- type Fully qualified Java class name of the ActionMapping\r
- implementation class to be used. DEPRECATED.\r
-\r
- WARNING: For Struts 1.0, this value is ignored. You\r
- can set the default implementation class name with the\r
- "mapping" initialization parameter to the Struts\r
- controller servlet.\r
--->\r
-<!ELEMENT action-mappings (action*)>\r
-<!ATTLIST action-mappings id ID #IMPLIED>\r
-<!ATTLIST action-mappings type %ClassName; "org.apache.struts.action.ActionMapping">\r
-\r
-\r
-<!-- The "action" element describes a mapping from a request paths to the\r
- corresponding Action classes that should be used to process these\r
- requests. The following attributes are defined:\r
-\r
- attribute Name of the request-scope or session-scope attribute\r
- under which our form bean is accessed, if it is other\r
- than the bean's specified "name". Optional if\r
- "name" is specified, else not allowed.\r
-\r
- className Fully qualified Java class name of the ActionMapping\r
- implementation class to use. Defaults to the value\r
- configured as the "mapping" initialization parameter\r
- to the Struts controller servlet.\r
-\r
- forward Context-relative path of the servlet or JSP resource that\r
- will process this request, instead of instantiating and\r
- calling the Action class specified by "type". Exactly one\r
- of "forward", "include", or "type" must be specified.\r
-\r
- include Context-relative path of the servlet or JSP resource that\r
- will process this request, instead of instantiating and\r
- calling the Action class specified by "type". Exactly one\r
- of "forward", "include", or "type" must be specified.\r
-\r
- input Context-relative path of the input form to which control\r
- should be returned if a validation error is encountered.\r
- Required if "name" is specified and the input bean\r
- returns validation errors. Optional if "name" is\r
- specified and the input bean does not return validation\r
- errors. Not allowed if "name" is not specified.\r
-\r
- name Name of the form bean, if any, that is associated\r
- with this action.\r
-\r
- path The context-relative path of the submitted request,\r
- starting with a "/" character, and without the\r
- filename extension if extension mapping is used.\r
-\r
- parameter General purpose configuration parameter that can be used\r
- to pass extra information to the Action selected by this\r
- mapping.\r
-\r
- prefix Prefix used to match request parameter names to form bean\r
- property names, if any. Optional if "name" is specified,\r
- else not allowed.\r
-\r
- scope Identifier of the scope ("request" or "session") within\r
- which our form bean is accessed, if any. Optional if\r
- "name" is specified, else not allowed.\r
-\r
- suffix Suffix used to match request parameter names to form bean\r
- property names, if any. Optional if "name" is specified,\r
- else not allowed.\r
-\r
- type Fully qualified Java class name of the Action class\r
- (implements org.apache.struts.action.Action) to be\r
- used to process requests for this mapping if the "forward"\r
- or "include" attribute is not included. Exactly one\r
- of "forward", "include", or "type" must be specified.\r
-\r
- unknown Set to "true" if this action should be configured as the\r
- default for this application, to handle all requests\r
- not handled by another action. Only one action can be\r
- defined as a default within a single application.\r
-\r
- validate Set to "true" if the validate() method of the form bean\r
- should be called prior to calling this action, or set to\r
- "false" if you do not want validation performed.\r
--->\r
-<!ELEMENT action (icon?, display-name?, description?, set-property*, forward*)>\r
-<!ATTLIST action id ID #IMPLIED>\r
-<!ATTLIST action attribute %BeanName; #IMPLIED>\r
-<!ATTLIST action className %ClassName; #IMPLIED>\r
-<!ATTLIST action forward %RequestPath; #IMPLIED>\r
-<!ATTLIST action include %RequestPath; #IMPLIED>\r
-<!ATTLIST action input %RequestPath; #IMPLIED>\r
-<!ATTLIST action name %BeanName; #IMPLIED>\r
-<!ATTLIST action parameter CDATA #IMPLIED>\r
-<!ATTLIST action path %RequestPath; #REQUIRED>\r
-<!ATTLIST action prefix CDATA #IMPLIED>\r
-<!ATTLIST action scope %RequestScope; #IMPLIED>\r
-<!ATTLIST action suffix CDATA #IMPLIED>\r
-<!ATTLIST action type %ClassName; #IMPLIED>\r
-<!ATTLIST action unknown %Boolean; #IMPLIED>\r
-<!ATTLIST action validate %Boolean; #IMPLIED>\r
-\r
-\r
-<!-- The "set-property" element specifies the name and value of an additional\r
- JavaBeans configuration property whose setter method will be called\r
- on the object that represents our surrounding element. This is especially\r
- useful when an extended implementation class (with additional properties)\r
- is configured on the <global-forwards> or <action-mappings> elements.\r
- The following attributes are defined:\r
-\r
- property Name of the JavaBeans property whose setter method\r
- will be called.\r
-\r
- value String representation of the value to which this\r
- property will be set, after suitable type conversion\r
--->\r
-<!ELEMENT set-property EMPTY>\r
-<!ATTLIST set-property id ID #IMPLIED>\r
-<!ATTLIST set-property property %PropName; #REQUIRED>\r
-<!ATTLIST set-property value CDATA #REQUIRED>\r
-\r
-\r
-\r
-<!-- ========== Subordinate Elements ====================================== -->\r
-\r
-\r
-<!-- The "description" element contains descriptive (paragraph length) text\r
- about the surrounding element, suitable for use in GUI tools.\r
--->\r
-<!ELEMENT description (#PCDATA)>\r
-<!ATTLIST description id ID #IMPLIED>\r
-\r
-\r
-\r
-<!-- The "display-name" element contains a short (one line) description of\r
- the surrounding element, suitable for use in GUI tools.\r
--->\r
-<!ELEMENT display-name (#PCDATA)>\r
-<!ATTLIST display-name id ID #IMPLIED>\r
-\r
-\r
-<!-- The "icon" element contains a small-icon and large-icon element which\r
- specify the location, relative to the Struts configuration file, for small\r
- and large images used to represent the surrounding element in GUI tools.\r
--->\r
-<!ELEMENT icon (small-icon?, large-icon?)>\r
-<!ATTLIST icon id ID #IMPLIED>\r
-\r
-\r
-<!-- The "large-icon" element specifies the location, relative to the Struts\r
- configuration file, of a resource containing a large (32x32 pixel)\r
- icon image.\r
--->\r
-<!ELEMENT large-icon (%Location;)>\r
-<!ATTLIST large-icon id ID #IMPLIED>\r
-\r
-\r
-<!-- The "small-icon" element specifies the location, relative to the Struts\r
- configuration file, of a resource containing a small (16x16 pixel)\r
- icon image.\r
--->\r
-<!ELEMENT small-icon (%Location;)>\r
-<!ATTLIST small-icon id ID #IMPLIED>\r
-\r
+++ /dev/null
-<!--\r
- DTD for the Struts Application Configuration File, Version 1.1\r
-\r
- To support validation of your configuration file, include the following\r
- DOCTYPE element at the beginning (after the "xml" declaration):\r
-\r
- <!DOCTYPE struts-config PUBLIC\r
- "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN"\r
- "http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd">\r
-\r
- $Id: struts-config_1_1.dtd,v 1.40 2003/05/14 08:17:16 turner Exp $\r
--->\r
-\r
-\r
-<!-- ========== Defined Types ============================================= -->\r
-\r
-\r
-<!-- An "AttributeName" is the identifier of a page, request, session, or\r
- application scope attribute.\r
--->\r
-<!ENTITY % AttributeName "CDATA">\r
-\r
-\r
-<!-- A "BeanName" is the identifier of a JavaBean, such as a form bean,\r
- and also serves as the name of the corresponding scripting variable\r
- and the name of the JSP attribute under which the bean is accessed.\r
- Therefore, it must conform to the rules for a Java identifier.\r
--->\r
-<!ENTITY % BeanName "CDATA">\r
-\r
-\r
-<!-- A "Boolean" is the string representation of a boolean (true or false)\r
- variable.\r
--->\r
-<!ENTITY % Boolean "(true|false|yes|no)">\r
-\r
-\r
-<!-- A "ClassName" is the fully qualified name of a Java class that is\r
- instantiated to provide the functionality of the enclosing element.\r
--->\r
-<!ENTITY % ClassName "CDATA">\r
-\r
-\r
-<!-- An "Integer" is a character string consisting solely of numeric digits,\r
- optionally preceeded by a minus sign, that can be converted to a\r
- 32-bit integer.\r
--->\r
-<!ENTITY % Integer "CDATA">\r
-\r
-\r
-<!-- A "Location" is a relative path, delimited by "/" characters, that\r
- defines the location of a resource relative to the location of the\r
- Struts configuration file itself.\r
--->\r
-<!ENTITY % Location "#PCDATA">\r
-\r
-\r
-<!-- A "PropName" is the name of a JavaBeans property, and must begin with\r
- a lower case letter and contain only characters that are legal in a\r
- Java identifier.\r
--->\r
-<!ENTITY % PropName "CDATA">\r
-\r
-\r
-<!-- A "RequestPath" is an application-relative URI path, beginning with a\r
- slash, that identifies a mapped resource (such as a JSP page or a servlet)\r
- within this web application.\r
--->\r
-<!ENTITY % RequestPath "CDATA">\r
-\r
-\r
-<!-- The name of a JSP bean scope within which such a form bean may be\r
- accessed.\r
--->\r
-<!ENTITY % RequestScope "(request|session)">\r
-\r
-\r
-<!-- ========== Top Level Elements ======================================== -->\r
-\r
-\r
-<!-- The "struts-config" element is the root of the configuration file\r
- hierarchy, and contains nested elements for all of the other\r
- configuration settings.\r
--->\r
-<!ELEMENT struts-config (data-sources?, form-beans?, global-exceptions?, global-forwards?, action-mappings?, controller?, message-resources*, plug-in*)>\r
-<!ATTLIST struts-config id ID #IMPLIED>\r
-\r
-\r
-<!-- The "data-sources" element describes a set of DataSource objects [JDBC 2.0\r
- Standard Extension]. The individual DataSource objects are configured through\r
- nested <data-source> elements.\r
--->\r
-<!ELEMENT data-sources (data-source*)>\r
-<!ATTLIST data-sources id ID #IMPLIED>\r
-\r
-\r
-<!-- The "data-source" element describes a DataSource object [JDBC 2.0 Standard\r
- Extension] that will be instantiated, configured, and made available as a\r
- servlet context attribute (or "application-scope bean"). Any object can be\r
- specified so long as it implements [javax.sql.DataSource] and can be\r
- configured entirely from JavaBean properties. The following attributes\r
- are required:\r
-\r
- className The configuration bean for this DataSource object. If\r
- specified, the object must be a subclass of the default\r
- configuration bean.\r
- ["org.apache.struts.config.DataSourceConfig"]\r
-\r
- key Servlet context attribute key under which this data source\r
- will be stored. Default is the value specified by string\r
- constant defined by Globals.DATA_SOURCE_KEY. The application\r
- module prefix (if any) is appended to the key\r
- (${key}$prefix}).\r
- [org.apache.struts.Globals.DATA_SOURCE_KEY]\r
-\r
- NOTE: The application module prefix includes the leading\r
- slash, so the default datasource for a module named "foo" is\r
- stored under "org.apache.struts.action.DATA_SOURCE/foo".\r
-\r
- type Fully qualified Java class name for this data source object.\r
- The class must implement DataSource [javax.sql.DataSource],\r
- and the object must be configurable entirely from JavaBean\r
- properties.\r
--->\r
-<!ELEMENT data-source (set-property*)>\r
-<!ATTLIST data-source id ID #IMPLIED>\r
-<!ATTLIST data-source className %ClassName; #IMPLIED>\r
-<!ATTLIST data-source key %AttributeName; #IMPLIED>\r
-<!ATTLIST data-source type %ClassName; #IMPLIED>\r
-\r
-\r
-<!-- The "form-beans" element describes the set of form bean descriptors for this\r
- application module. The following attributes are defined:\r
-\r
- type Fully qualified Java class to use when instantiating\r
- ActionFormBean objects. If specified, the object must be a\r
- subclass of the default class type.\r
- DEPRECATED.\r
-\r
- WARNING: For Struts 1.0, this value is ignored. You\r
- can set the default implementation class name with the\r
- "formBean" initialization parameter to the Struts\r
- controller servlet.\r
--->\r
-<!ELEMENT form-beans (form-bean*)>\r
-<!ATTLIST form-beans id ID #IMPLIED>\r
-<!ATTLIST form-beans type %ClassName; #IMPLIED>\r
-\r
-\r
-<!-- The "form-bean" element describes an ActionForm subclass\r
- [org.apache.struts.action.ActionForm] that can be referenced by an "action"\r
- element.\r
-\r
-\r
-The "form-bean" element describes a particular form bean, which is a\r
- JavaBean that implements the org.apache.struts.action.ActionForm\r
- class. The following attributes are defined:\r
-\r
- className The configuration bean for this form bean object. If\r
- specified, the object must be a subclass of the default\r
- configuration bean.\r
- ["org.apache.struts.config.FormBeanConfig"]\r
-\r
- dynamic If the form bean type is a DynaActionForm subclass (that you\r
- created), then (and only then) set this attribute to "true".\r
- If the type is set to the default DynaActionForm or any\r
- conventional ActionForm subclass, then this attribute can be\r
- omitted.\r
- [true] if type is "org.apache.struts.action.DynaActionForm"\r
- [false] otherwise DEPRECATED - THIS IS NOW DETERMINED\r
- DYNAMICALLY BASED ON THE SPECIFIED IMPLEMENTATION CLASS.\r
-\r
- name The unique identifier for this form bean. Referenced by the\r
- <action> element to specify which form bean to use with its\r
- request.\r
-\r
- type Fully qualified Java class name of the ActionForm subclass\r
- to use with this form bean.\r
--->\r
-<!ELEMENT form-bean (icon?, display-name?, description?, set-property*, form-property*)>\r
-<!ATTLIST form-bean id ID #IMPLIED>\r
-<!ATTLIST form-bean className %ClassName; #IMPLIED>\r
-<!ATTLIST form-bean dynamic %Boolean; #IMPLIED>\r
-<!ATTLIST form-bean name %BeanName; #REQUIRED>\r
-<!ATTLIST form-bean type %ClassName; #REQUIRED>\r
-\r
-\r
-<!-- The "form-property" element describes a JavaBean property that can be used to\r
- configure an instance of a DynaActionForm or a subclass thereof. This element\r
- is only utilized when the "type" attribute of the enclosing "form-bean" element\r
- is [org.apache.struts.action.DynaActionForm] or a subclass of DynaActionForm. If\r
- a custom DynaActionForm subclass is used, then the "dynamic" attribute of the\r
- enclosing <form-bean> element must be set to "true". Since Struts 1.1.\r
-\r
- className The configuration bean for this form property object. If\r
- specified, the object must be a subclass of the default\r
- configuration bean.\r
- ["org.apache.struts.config.FormPropertyConfig"]\r
-\r
- initial String representation of the initial value for this property.\r
- If not specified, primitives will be initialized to zero and\r
- objects initialized to the zero-argument instantiation of that\r
- object class. For example, Strings will be initialized to ""\r
-\r
-\r
- name The name of the JavaBean property described by this element.\r
-\r
- size The number of array elements to create if the value of the\r
- "type" attribute specifies an array, but there is no value\r
- specified for the "initial" attribute.\r
-\r
- type Fully qualified Java class name of the field underlying this\r
- property, optionally followed by "[]" to indicate that the\r
- field is indexed.\r
--->\r
-<!ELEMENT form-property (set-property*)>\r
-<!ATTLIST form-property className %ClassName; #IMPLIED>\r
-<!ATTLIST form-property initial CDATA #IMPLIED>\r
-<!ATTLIST form-property name %PropName; #REQUIRED>\r
-<!ATTLIST form-property size %Integer; #IMPLIED>\r
-<!ATTLIST form-property type %ClassName; #REQUIRED>\r
-\r
-\r
-<!-- The "global-exceptions" element describes a set of exceptions that might be\r
- thrown by an Action object. The handling of individual exception types is\r
- configured through nested exception elements. An <action> element may\r
- override a global exception handler by registering a local exception handler\r
- for the same exception type. Since Struts 1.1.\r
--->\r
-<!ELEMENT global-exceptions (exception*)>\r
-<!ATTLIST global-exceptions id ID #IMPLIED>\r
-\r
-\r
-<!-- The "exception" element registers an ExceptionHandler for an exception type.\r
- The following attributes are defined:\r
-\r
- bundle Servlet context attribute for the message resources bundle\r
- associated with this handler. The default attribute is the\r
- value specified by the string constant declared at\r
- Globals.MESSAGES_KEY.\r
- [org.apache.struts.Globals.MESSAGES_KEY]\r
-\r
- className The configuration bean for this ExceptionHandler object.\r
- If specified, className must be a subclass of the default\r
- configuration bean\r
- ["org.apache.struts.config.ExceptionConfig"]\r
-\r
- handler Fully qualified Java class name for this exception handler.\r
- ["org.apache.struts.action.ExceptionHandler"]\r
-\r
- key The key to use with this handler's message resource bundle\r
- that will retrieve the error message template for this\r
- exception.\r
-\r
- path The module-relative URI to the resource that will complete\r
- the request/response if this exception occurs.\r
-\r
- scope The context ("request" or "session") that is used to access\r
- the ActionError object [org.apache.struts.action.ActionError]\r
- for this exception.\r
-\r
- type Fully qualified Java class name of the exception type to\r
- register with this handler.\r
--->\r
-<!ELEMENT exception (icon?, display-name?, description?, set-property*)>\r
-<!ATTLIST exception id ID #IMPLIED>\r
-<!ATTLIST exception bundle %AttributeName; #IMPLIED>\r
-<!ATTLIST exception className %ClassName; #IMPLIED>\r
-<!ATTLIST exception handler %ClassName; #IMPLIED>\r
-<!ATTLIST exception key CDATA #REQUIRED>\r
-<!ATTLIST exception path %RequestPath; #IMPLIED>\r
-<!ATTLIST exception scope CDATA #IMPLIED>\r
-<!ATTLIST exception type %ClassName; #REQUIRED>\r
-\r
-\r
-<!-- The "global-forwards" element describes a set of ActionForward objects\r
- [org.apache.struts.action.ActionForward] that are available to all Action\r
- objects as a return value. The individual ActionForwards are configured\r
- through nested <forward> elements. An <action> element may override a global\r
- forward by defining a local <forward> of the same name.\r
-\r
- type Fully qualified Java class to use when instantiating\r
- ActionForward objects. If specified, the object must be a\r
- subclass of the default class type.\r
- DEPRECATED.\r
-\r
- WARNING: For Struts 1.0, this value is ignored. You\r
- can set the default implementation class name with the\r
- "forward" initialization parameter to the Struts\r
- controller servlet.\r
--->\r
-<!ELEMENT global-forwards (forward*)>\r
-<!ATTLIST global-forwards id ID #IMPLIED>\r
-<!ATTLIST global-forwards type %ClassName; #IMPLIED>\r
-\r
-\r
-<!-- The "forward" element describes an ActionForward that is to be made\r
- available to an Action as a return value. An ActionForward is referenced by\r
- a logical name and encapsulates a URI. A "forward" element may be used to\r
- describe both global and local ActionForwards. Global forwards are available\r
- to all the Action objects in the application module. Local forwards can be\r
- nested within an <action> element and only available to an Action object\r
- when it is invoked through that ActionMapping.\r
-\r
- className Fully qualified Java class name of ActionForward\r
- subclass to use for this object.\r
- ["org.apache.struts.action.ActionForward"]\r
-\r
- contextRelative Set this to "true" if, in a modular application, the path\r
- attribute starts with a slash "/" and should be considered\r
- relative to the entire web application rather than the module.\r
- Since Struts 1.1.\r
- [false]\r
-\r
- name The unique identifier for this forward. Referenced by the\r
- Action object at runtime to select - by its logical name -\r
- the resource that should complete the request/response.\r
-\r
- path The module-relative or context-relative path to the resources\r
- that is encapsulated by the logical name of this ActionForward.\r
- If the path is to be considered context-relative when used in\r
- a modular application, then the contextRelative attribute\r
- should be set to "true". This value should begin with a slash\r
- ("/") character.\r
-\r
- redirect Set to "true" if a redirect instruction should be issued to\r
- the user-agent so that a new request is issued for this\r
- forward's resource. If true, RequestDispatcher.Redirect is\r
- called. If "false", RequestDispatcher.forward is called instead.\r
- [false]\r
--->\r
-<!ELEMENT forward (icon?, display-name?, description?, set-property*)>\r
-<!ATTLIST forward id ID #IMPLIED>\r
-<!ATTLIST forward className %ClassName; #IMPLIED>\r
-<!ATTLIST forward contextRelative %Boolean; #IMPLIED>\r
-<!ATTLIST forward name CDATA #REQUIRED>\r
-<!ATTLIST forward path %RequestPath; #REQUIRED>\r
-<!ATTLIST forward redirect %Boolean; #IMPLIED>\r
-\r
-\r
-<!-- The "action-mappings" element describes a set of ActionMapping objects\r
- [org.apache.struts.action.ActionMapping] that are available to process\r
- requests matching the url-pattern our ActionServlet registered with the\r
- container. The individual ActionMappings are configured through nested\r
- <action> elements. The following attributes are defined:\r
-\r
- type Fully qualified Java class to use when instantiating\r
- ActionMapping objects. If specified, the object must be a\r
- subclass of the default class type.\r
-\r
- WARNING: For Struts 1.0, this value is ignored. You\r
- can set the default implementation class name with the\r
- "mapping" initialization parameter to the Struts\r
- controller servlet.\r
--->\r
-<!ELEMENT action-mappings (action*)>\r
-<!ATTLIST action-mappings id ID #IMPLIED>\r
-<!ATTLIST action-mappings type %ClassName; #IMPLIED>\r
-\r
-\r
-<!-- The "action" element describes an ActionMapping object that is to be used\r
- to process a request for a specific module-relative URI. The following\r
- attributes are defined:\r
-\r
- attribute Name of the request-scope or session-scope attribute that\r
- is used to access our ActionForm bean, if it is other than\r
- the bean's specified "name". Optional if "name" is specified,\r
- else not valid.\r
-\r
- className The fully qualified Java class name of the ActionMapping\r
- subclass to use for this action mapping object. Defaults to\r
- the type specified by the enclosing <action-mappings>\r
- element or to "org.apache.struts.action.ActionMapping" if\r
- not specified.\r
- ["org.apache.struts.action.ActionMapping"]\r
-\r
- forward Module-relative path of the servlet or other resource that\r
- will process this request, instead of the Action class\r
- specified by "type". The path WILL NOT be processed\r
- through the "forwardPattern" attribute that is configured\r
- on the "controller" element for this application module.\r
- Exactly one of "forward", "include", or "type" must be\r
- specified.\r
-\r
- include Module-relative path of the servlet or other resource that\r
- will process this request, instead of the Action class\r
- specified by "type". The path WILL NOT be processed\r
- through the "forwardPattern" attribute that is configured\r
- on the "controller" element for this application module.\r
- Exactly one of "forward", "include", or "type" must be\r
- specified.\r
-\r
- input Module-relative path of the action or other resource to\r
- which control should be returned if a validation error is\r
- encountered. Valid only when "name" is specified. Required\r
- if "name" is specified and the input bean returns\r
- validation errors. Optional if "name" is specified and the\r
- input bean does not return validation errors.\r
-\r
- name Name of the form bean, if any, that is associated with this\r
- action mapping.\r
-\r
- path The module-relative path of the submitted request, starting\r
- with a "/" character, and without the filename extension if\r
- extension mapping is used.\r
-\r
- NOTE: Do *not* include a period in your path name,\r
- because it will look like a filename extension and\r
- cause your Action to not be located.\r
-\r
- parameter General-purpose configuration parameter that can be used to\r
- pass extra information to the Action object selected by\r
- this action mapping.\r
-\r
- prefix Prefix used to match request parameter names to ActionForm\r
- property names, if any. Optional if "name" is specified,\r
- else not allowed.\r
-\r
- roles Comma-delimited list of security role names that are allowed\r
- access to this ActionMapping object. Since Struts 1.1.\r
-\r
- scope The context ("request" or "session") that is used to\r
- access our ActionForm bean, if any. Optional if "name" is\r
- specified, else not valid.\r
-\r
- suffix Suffix used to match request parameter names to ActionForm\r
- bean property names, if any. Optional if "name" is\r
- specified, else not valid.\r
-\r
- type Fully qualified Java class name of the Action subclass\r
- [org.apache.struts.action.Action] that will process requests\r
- for this action mapping. Not valid if either the "forward"\r
- or "include" attribute is specified. Exactly one of\r
- "forward", "include", or "type" must be specified.\r
-\r
- unknown Set to "true" if this object should be configured as the\r
- default action mapping for this module. If a request does not\r
- match another object, it will be passed to the ActionMapping\r
- object with unknown set to "true". Only one ActionMapping\r
- can be marked as "unknown" within a module.\r
- [false]\r
-\r
- validate Set to "true" if the validate method of the ActionForm bean\r
- should be called prior to calling the Action object for this\r
- action mapping, or set to "false" if you do not want the\r
- validate method called.\r
- [true]\r
--->\r
-<!ELEMENT action (icon?, display-name?, description?, set-property*, exception*, forward*)>\r
-<!ATTLIST action id ID #IMPLIED>\r
-<!ATTLIST action attribute %BeanName; #IMPLIED>\r
-<!ATTLIST action className %ClassName; #IMPLIED>\r
-<!ATTLIST action forward %RequestPath; #IMPLIED>\r
-<!ATTLIST action include %RequestPath; #IMPLIED>\r
-<!ATTLIST action input %RequestPath; #IMPLIED>\r
-<!ATTLIST action name %BeanName; #IMPLIED>\r
-<!ATTLIST action parameter CDATA #IMPLIED>\r
-<!ATTLIST action path %RequestPath; #REQUIRED>\r
-<!ATTLIST action prefix CDATA #IMPLIED>\r
-<!ATTLIST action roles CDATA #IMPLIED>\r
-<!ATTLIST action scope %RequestScope; #IMPLIED>\r
-<!ATTLIST action suffix CDATA #IMPLIED>\r
-<!ATTLIST action type %ClassName; #IMPLIED>\r
-<!ATTLIST action unknown %Boolean; #IMPLIED>\r
-<!ATTLIST action validate %Boolean; #IMPLIED>\r
-\r
-\r
-<!-- The "controller" element describes the ControllerConfig bean\r
- [org.apache.struts.config.ControllerConfig] that encapsulates\r
- an application module's runtime configuration. The following\r
- attributes are defined:\r
-\r
- bufferSize The size of the input buffer used when processing\r
- file uploads.\r
- [4096]\r
-\r
- className Fully qualified Java class name of the\r
- ControllerConfig subclass for this controller object.\r
- If specified, the object must be a subclass of the\r
- default class.\r
- ["org.apache.struts.config.ControllerConfig"]\r
-\r
- contentType Default content type (and optional character encoding) to\r
- be set on each response. May be overridden by the Action,\r
- JSP, or other resource to which the request is forwarded.\r
- ["text/html"]\r
-\r
- debug Debugging detail level for this module. [0]\r
- DEPRECATED - configure the logging detail level\r
- in your underlying logging implementation.\r
-\r
- forwardPattern Replacement pattern defining how the "path" attribute of a\r
- <forward> element is mapped to a context-relative URL when\r
- it starts with a slash (and when the contextRelative\r
- property is false). This value may consist of any\r
- combination of the following:\r
- - "$M" - Replaced by the module prefix of this module\r
- - "$P" - Replaced by the "path" attribute of the selected\r
- "forward" element\r
- - "$$" - Causes a literal dollar sign to be rendered\r
- - "$x" - (Where "x" is any character not defined above)\r
- Silently swallowed, reserved for future use\r
- If not specified, the default forwardPattern is "$M$P",\r
- which is consistent with the previous behavior of\r
- forwards. Since Struts 1.1. ["$M$P"]\r
-\r
- inputForward Set to "true" if you want the "input" attribute of\r
- <action> elements to be the name of a local or global\r
- ActionForward, which will then be used to calculate the\r
- ultimate URL. Set to "false" (the default) to treat the\r
- "input" parameter of <action> elements as a\r
- module-relative path to the resource\r
- to be used as the input form. Since Struts 1.1.\r
- [false]\r
-\r
- locale Set to "true" if you want a Locale object stored in the\r
- user's session if not already present.\r
- [true]\r
-\r
- maxFileSize The maximum size (in bytes) of a file to be accepted as a\r
- file upload. Can be expressed as a number followed by a\r
- "K", "M", or "G", which are interpreted to mean kilobytes,\r
- megabytes, or gigabytes, respectively.\r
- ["250M"]\r
-\r
- memFileSize The maximum size (in bytes) of a file whose contents will\r
- be retained in memory after uploading. Files larger than\r
- this threshold will be written to some alternative storage\r
- medium, typically a hard disk. Can be expressed as a number\r
- followed by a "K", "M", or "G", which are interpreted to\r
- mean kilobytes, megabytes, or gigabytes, respectively.\r
- ["256K"]\r
-\r
- multipartClass The fully qualified Java class name of the multipart\r
- request handler class to be used with this module.\r
- ["org.apache.struts.upload.CommonsMultipartRequestHandler"]\r
-\r
- nocache Set to "true" if you want the controller to add HTTP\r
- headers for defeating caching to every response from\r
- this module. [false]\r
-\r
- pagePattern Replacement pattern defining how the "page" attribute of\r
- custom tags using it is mapped to a context-relative URL\r
- of the corresponding resource. This value may consist of\r
- any combination of the following:\r
- - "$M" - Replaced by the module prefix of this module\r
- - "$P" - Replaced by the value of the "page" attribute\r
- - "$$" - Causes a literal dollar sign to be rendered\r
- - "$x" - (Where "x" is any character not defined above)\r
- Silently swallowed, reserved for future use\r
- If not specified, the default forwardPattern is\r
- "$M$P", which is consistent with previous hard coded\r
- behavior of URL evaluation for "page" attributes.\r
- ["$M$P"]\r
-\r
- processorClass The fully qualified Java class name of the\r
- RequestProcessor subclass to be used with this module.\r
- ["org.apache.struts.action.RequestProcessor"]\r
-\r
- tempDir Temporary working directory to use when processing\r
- file uploads.\r
- [{Directory provided by servlet container}]\r
--->\r
-<!ELEMENT controller (set-property*)>\r
-<!ATTLIST controller id ID #IMPLIED>\r
-<!ATTLIST controller bufferSize %Integer; #IMPLIED>\r
-<!ATTLIST controller className %ClassName; #IMPLIED>\r
-<!ATTLIST controller contentType CDATA #IMPLIED>\r
-<!ATTLIST controller debug %Integer; #IMPLIED>\r
-<!ATTLIST controller forwardPattern CDATA #IMPLIED>\r
-<!ATTLIST controller inputForward %Boolean; #IMPLIED>\r
-<!ATTLIST controller locale %Boolean; #IMPLIED>\r
-<!ATTLIST controller maxFileSize CDATA #IMPLIED>\r
-<!ATTLIST controller memFileSize CDATA #IMPLIED>\r
-<!ATTLIST controller multipartClass %ClassName; #IMPLIED>\r
-<!ATTLIST controller nocache %Boolean; #IMPLIED>\r
-<!ATTLIST controller pagePattern CDATA #IMPLIED>\r
-<!ATTLIST controller processorClass %ClassName; #IMPLIED>\r
-<!ATTLIST controller tempDir CDATA #IMPLIED>\r
-\r
-\r
-<!-- The "message-resources" element describes a MessageResources object with\r
- message templates for this module. The following attributes are defined:\r
-\r
- className The configuration bean for this message resources object.\r
- If specified, the object must be a subclass of the default\r
- configuration bean.\r
- ["org.apache.struts.config.MessageResourcesConfig"]\r
-\r
- factory Fully qualified Java class name of the\r
- MessageResourcesFactory subclass to use for this message\r
- resources object.\r
- ["org.apache.struts.util.PropertyMessageResourcesFactory"]\r
-\r
- key Servlet context attribute under which this message\r
- resources bundle will be stored. The default attribute is\r
- the value specified by the string constant at\r
- [Globals.MESSAGES_KEY]. The application module prefix (if\r
- any) is appended to the key (${key}${prefix}).\r
- [org.apache.struts.Globals.MESSAGES_KEY]\r
-\r
- NOTE: The application module prefix includes the leading\r
- slash, so the default message resource bundle for a module\r
- named "foo" is stored under\r
- "org.apache.struts.action.MESSAGE/foo".\r
-\r
- null Set to "true" if you want our message resources to return a\r
- null string for unknown message keys, or "false" to return a\r
- message with the bad key value.\r
-\r
- parameter Configuration parameter to be passed to the createResources\r
- method of our factory object.\r
--->\r
-<!ELEMENT message-resources (set-property*)>\r
-<!ATTLIST message-resources id ID #IMPLIED>\r
-<!ATTLIST message-resources className %ClassName; #IMPLIED>\r
-<!ATTLIST message-resources factory %ClassName; #IMPLIED>\r
-<!ATTLIST message-resources key %AttributeName; #IMPLIED>\r
-<!ATTLIST message-resources null %Boolean; #IMPLIED>\r
-<!ATTLIST message-resources parameter CDATA #REQUIRED>\r
-\r
-\r
-<!-- The "plug-in" element specifies the fully qualified class name of a\r
- general-purpose application plug-in module that receives notification of\r
- application startup and shutdown events. An instance of the specified class\r
- is created for each element, and can be configured with nested <set-property>\r
- elements. The following attributes are supported:\r
-\r
- className Fully qualified Java class name of the plug-in class; must\r
- implement [org.apache.struts.action.PlugIn].\r
--->\r
-<!ELEMENT plug-in (set-property*)>\r
-<!ATTLIST plug-in id ID #IMPLIED>\r
-<!ATTLIST plug-in className %ClassName; #REQUIRED>\r
-\r
-\r
-<!-- ========== Subordinate Elements ====================================== -->\r
-\r
-\r
-<!-- The "description" element contains descriptive (paragraph length) text\r
- about the surrounding element, suitable for use in GUI tools.\r
--->\r
-<!ELEMENT description (#PCDATA)>\r
-<!ATTLIST description id ID #IMPLIED>\r
-\r
-\r
-<!-- The "display-name" element contains a short (one line) description of\r
- the surrounding element, suitable for use in GUI tools.\r
--->\r
-<!ELEMENT display-name (#PCDATA)>\r
-<!ATTLIST display-name id ID #IMPLIED>\r
-\r
-\r
-<!-- The "icon" element contains a small-icon and large-icon element which\r
- specify the location, relative to the Struts configuration file, for small\r
- and large images used to represent the surrounding element in GUI tools.\r
--->\r
-<!ELEMENT icon (small-icon?, large-icon?)>\r
-<!ATTLIST icon id ID #IMPLIED>\r
-\r
-\r
-<!-- The "large-icon" element specifies the location, relative to the Struts\r
- configuration file, of a resource containing a large (32x32 pixel)\r
- icon image.\r
--->\r
-<!ELEMENT large-icon (%Location;)>\r
-<!ATTLIST large-icon id ID #IMPLIED>\r
-\r
-\r
-<!-- The "set-property" element specifies the method name and initial value of\r
- an additional JavaBean configuration property. When the object representing\r
- the surrounding element is instantiated, the accessor for the indicated\r
- property is called and passed the indicated value. The "set-property"\r
- element is especially useful when a custom subclass is used with\r
- <data-source>, <forward>, <action>, or <plug-in> elements. The subclass\r
- can be passed whatever other properties may be required to configure the\r
- object without changing how the struts-config is parsed.\r
-\r
- property Name of the JavaBeans property whose setter method\r
- will be called.\r
-\r
- value String representation of the value to which this\r
- property will be set, after suitable type conversion\r
--->\r
-<!ELEMENT set-property EMPTY>\r
-<!ATTLIST set-property id ID #IMPLIED>\r
-<!ATTLIST set-property property %PropName; #REQUIRED>\r
-<!ATTLIST set-property value CDATA #REQUIRED>\r
-\r
-\r
-<!-- The "small-icon" element specifies the location, relative to the Struts\r
- configuration file, of a resource containing a small (16x16 pixel)\r
- icon image.\r
--->\r
-<!ELEMENT small-icon (%Location;)>\r
-<!ATTLIST small-icon id ID #IMPLIED>\r
-\r
+++ /dev/null
-<?xml version="1.0" encoding="ISO-8859-1"?>\r
-<!--\r
- DTD for the Tile Definition File, Version 1.0\r
-\r
- To support validation of your configuration file, include the following\r
- DOCTYPE element at the beginning (after the "xml" declaration):\r
-\r
- <!DOCTYPE tiles-definitions PUBLIC\r
- "-//Apache Software Foundation//DTD Tiles Configuration//EN"\r
- "http://jakarta.apache.org/struts/dtds/tiles-config.dtd">\r
-\r
- $Id: tiles-config.dtd,v 1.1 2002/06/25 03:23:20 craigmcc Exp $\r
--->\r
-<!ELEMENT component-definitions (definition+)>\r
-<!ELEMENT tiles-definitions (definition+)>\r
-<!ELEMENT definition (put*, putList*)>\r
-<!ATTLIST definition\r
- name CDATA #REQUIRED\r
- page CDATA #IMPLIED\r
- path CDATA #IMPLIED\r
- extends CDATA #IMPLIED\r
- role CDATA #IMPLIED\r
- template CDATA #IMPLIED\r
- controllerClass CDATA #IMPLIED\r
- controllerUrl CDATA #IMPLIED\r
->\r
-<!ELEMENT put (#PCDATA)>\r
-<!ATTLIST put\r
- name CDATA #REQUIRED\r
- value CDATA #IMPLIED\r
- type (string | page | template | definition) #IMPLIED\r
- content CDATA #IMPLIED\r
- direct (true | false) #IMPLIED\r
->\r
-<!ELEMENT putList ( (add* | item* | bean* | putList*)+) >\r
-<!ATTLIST putList\r
- name CDATA #REQUIRED\r
->\r
-<!ELEMENT putListElements (add | item | bean)>\r
-\r
-<!ELEMENT add (#PCDATA)>\r
-<!ATTLIST add\r
- value CDATA #IMPLIED\r
- type (string | page | template | definition) #IMPLIED\r
- content CDATA #IMPLIED\r
- direct (true | false) #IMPLIED\r
->\r
-\r
-<!ELEMENT bean (#PCDATA)>\r
-<!ATTLIST bean\r
- classtype CDATA #REQUIRED\r
->\r
-\r
-<!ELEMENT item (#PCDATA)>\r
-<!ATTLIST item\r
- value CDATA #REQUIRED\r
- link CDATA #REQUIRED\r
- classtype CDATA #IMPLIED\r
- icon CDATA #IMPLIED\r
- tooltip CDATA #IMPLIED\r
->\r
+++ /dev/null
-<!--\r
- DTD for the Tile Definition File, Version 1.1\r
-\r
- To support validation of your configuration file, include the following\r
- DOCTYPE element at the beginning (after the "xml" declaration):\r
-\r
- <!DOCTYPE tiles-definitions PUBLIC\r
- "-//Apache Software Foundation//DTD Tiles Configuration 1.1//EN"\r
- "http://jakarta.apache.org/struts/dtds/tiles-config_1_1.dtd">\r
-\r
- $Id: tiles-config_1_1.dtd,v 1.6 2003/05/03 16:19:56 jholmes Exp $\r
--->\r
-\r
-\r
-<!-- ========== Defined Types ============================================= -->\r
-\r
-\r
-<!-- A "Boolean" is the string representation of a boolean (true or false)\r
- variable.\r
--->\r
-<!ENTITY % Boolean "(true|false)">\r
-\r
-\r
-<!-- A "ContentType" is the content type of an attribute passed to a tile\r
- component.\r
--->\r
-<!ENTITY % ContentType "(string|page|template|definition)">\r
-\r
-<!-- A "ClassName" is the fully qualified name of a Java class that is\r
- instantiated to provide the functionality of the enclosing element.\r
--->\r
-<!ENTITY % ClassName "CDATA">\r
-\r
-<!-- A "RequestPath" is an application-relative URI path, beginning with a\r
- slash, that identifies a mapped resource (such as a JSP page or a servlet)\r
- within this web application.\r
--->\r
-<!ENTITY % RequestPath "CDATA">\r
-\r
-<!-- A "DefinitionName" is the unique identifier of a definition. This identifier\r
- is a logical name used to reference the definition.\r
--->\r
-<!ENTITY % DefinitionName "CDATA">\r
-\r
-<!-- A "BeanName" is the identifier of a JavaBean, such as a form bean,\r
- and also serves as the name of the corresponding scripting variable\r
- and the name of the JSP attribute under which the bean is accessed.\r
- Therefore, it must conform to the rules for a Java identifier.\r
--->\r
-<!ENTITY % BeanName "CDATA">\r
-\r
-<!-- A "PropName" is the name of a JavaBeans property, and must begin with\r
- a lower case letter and contain only characters that are legal in a\r
- Java identifier.\r
--->\r
-<!ENTITY % PropName "CDATA">\r
-\r
-<!-- A "Location" is a relative path, delimited by "/" characters, that\r
- defines the location of a resource relative to the location of the\r
- configuration file itself.\r
--->\r
-<!ENTITY % Location "#PCDATA">\r
-\r
-\r
-\r
-<!-- ========== Top Level Elements ======================================== -->\r
-\r
-\r
- <!-- deprecated: use tiles-definitions instead.-->\r
-<!ELEMENT component-definitions (definition+)>\r
-\r
-<!-- The "tiles-definitions" element is the root of the configuration file\r
- hierarchy, and contains nested elements for all of the other\r
- configuration settings.\r
--->\r
-<!ELEMENT tiles-definitions (definition+)>\r
-\r
-<!-- The "definition" element describes a definition that can be inserted in a jsp\r
- page. This definition is identified by its logical name. A definition allows\r
- to define all the attributes that can be set in <insert> tag from a jsp page.\r
-\r
- controllerClass The fully qualified Java class name of the controller\r
- subclass to call immediately before the tiles is inserted.\r
- Only one of controllerClass or controllerUrl should be\r
- specified.\r
-\r
- controllerUrl The context-relative path to the resource used as controller\r
- called immediately before the tiles is inserted.\r
- Only one of controllerClass or controllerUrl should be\r
- specified.\r
-\r
- extends Name of a definition that is used as ancestor of this definition.\r
- All attributes from the ancestor are available to the new\r
- definition. Any attribute inherited from the ancestor can\r
- be overloaded by providing a new value.\r
-\r
- name The unique identifier for this definition.\r
-\r
- page Same as path.\r
-\r
- path The context-relative path to the resource used as tiles to\r
- insert. This tiles will be inserted and a tiles context\r
- containing appropriate attributes will be available.\r
-\r
- role Security role name that is allowed access to this definition\r
- object. The definition is inserted only if the role name is\r
- allowed.\r
-\r
- template Same as path. For compatibility with the template tag library.\r
--->\r
-<!ELEMENT definition (icon?, display-name?, description?, put*, putList*)>\r
-<!ATTLIST definition id ID #IMPLIED>\r
-<!ATTLIST definition controllerClass %ClassName; #IMPLIED>\r
-<!ATTLIST definition controllerUrl %RequestPath; #IMPLIED>\r
-<!ATTLIST definition extends %DefinitionName; #IMPLIED>\r
-<!ATTLIST definition name %DefinitionName; #REQUIRED>\r
-<!ATTLIST definition page %RequestPath; #IMPLIED>\r
-<!ATTLIST definition path %RequestPath; #IMPLIED>\r
-<!ATTLIST definition role CDATA #IMPLIED>\r
-<!ATTLIST definition template %RequestPath; #IMPLIED>\r
-\r
-\r
-<!-- The "put" element describes an attribute of a definition. It allows to\r
- specify the tiles attribute name and its value. The tiles value can be\r
- specified as an xml attribute, or in the body of the <put> tag.\r
-\r
- content Same as value. For compatibility with the template tag library.\r
-\r
- direct Same as type="string". For compatibility with the template\r
- tag library.\r
-\r
- name The unique identifier for this put.\r
-\r
- type The type of the value. Can be: string, page, template or definition.\r
- By default, no type is associated to a value. If a type is\r
- associated, it will be used as a hint to process the value\r
- when the attribute will be used in the inserted tiles.\r
-\r
- value The value associated to this tiles attribute. The value should\r
- be specified with this tag attribute, or in the body of the tag.\r
--->\r
-<!ELEMENT put (#PCDATA)>\r
-<!ATTLIST put id ID #IMPLIED>\r
-<!ATTLIST put content CDATA #IMPLIED>\r
-<!ATTLIST put direct %Boolean; #IMPLIED>\r
-<!ATTLIST put name CDATA #REQUIRED>\r
-<!ATTLIST put type %ContentType; #IMPLIED>\r
-<!ATTLIST put value CDATA #IMPLIED>\r
-\r
-\r
-<!-- The "putList" element describes a list attribute of a definition. It allows to\r
- specify an attribute that is a java List containing any kind of values. In\r
- the config file, the list elements are specified by nested <add>, <item> or\r
- <putList>.\r
-\r
- name The unique identifier for this put list.\r
--->\r
-<!ELEMENT putList ( (add* | item* | bean* | putList*)+) >\r
-<!ATTLIST putList id ID #IMPLIED>\r
-<!ATTLIST putList name CDATA #REQUIRED>\r
-\r
-<!-- ========== Subordinate Elements ====================================== -->\r
-\r
-<!-- The "add" element describes an element of a list. It is similar to the\r
- <put> element.\r
-\r
- content Same as value. For compatibility with the template tag library.\r
-\r
- direct Same as type="string". For compatibility with the template\r
- tag library.\r
-\r
- type The type of the value. Can be: string, page, template or definition.\r
- By default, no type is associated to a value. If a type is\r
- associated, it will be used as a hint to process the value\r
- when the attribute will be used in the inserted tiles.\r
-\r
- value The value associated to this tiles attribute. The value should\r
- be specified with this tag attribute, or in the body of the tag.\r
--->\r
-<!ELEMENT add (#PCDATA)>\r
-<!ATTLIST add id ID #IMPLIED>\r
-<!ATTLIST add content CDATA #IMPLIED>\r
-<!ATTLIST add direct %Boolean; #IMPLIED>\r
-<!ATTLIST add type %ContentType; #IMPLIED>\r
-<!ATTLIST add value CDATA #IMPLIED>\r
-\r
-\r
-<!-- The "bean" element describes an element of a list. It create a bean of the\r
- specified java classtype. This bean is initialized with appropriate nested\r
- <set-property>.\r
-\r
- classtype The fully qualified classname for this bean.\r
--->\r
-<!ELEMENT bean (set-property*)>\r
-<!ATTLIST bean id ID #IMPLIED>\r
-<!ATTLIST bean classtype %ClassName; #REQUIRED>\r
-\r
-<!-- The "set-property" element specifies the method name and initial value of\r
- a bean property. When the object representing\r
- the surrounding element is instantiated, the accessor for the indicated\r
- property is called and passed the indicated value.\r
-\r
- property Name of the JavaBeans property whose setter method\r
- will be called.\r
-\r
- value String representation of the value to which this\r
- property will be set, after suitable type conversion\r
--->\r
-<!ELEMENT set-property EMPTY>\r
-<!ATTLIST set-property id ID #IMPLIED>\r
-<!ATTLIST set-property property %PropName; #REQUIRED>\r
-<!ATTLIST set-property value CDATA #REQUIRED>\r
-\r
-\r
-<!-- The "item" element describes an element of a list. It create a bean added as\r
- element to the list. Each bean can contain different properties: value, link,\r
- icon, tooltip. These properties are to be interpreted by the jsp page using\r
- them.\r
- By default the bean is of type\r
- "org.apache.struts.tiles.beans.SimpleMenuItem". This bean is useful to\r
- create a list of beans used as menu items.\r
-\r
- classtype The fully qualified classtype for this bean.\r
- If specified, the classtype must be a subclass of the interface\r
- "org.apache.struts.tiles.beans.MenuItem".\r
-\r
- icon The bean 'icon' property.\r
-\r
- link The bean 'link' property.\r
-\r
- tooltip The bean 'tooltip' property.\r
-\r
- value The bean 'value' property.\r
--->\r
-<!ELEMENT item (#PCDATA)>\r
-<!ATTLIST item id ID #IMPLIED>\r
-<!ATTLIST item classtype %ClassName; #IMPLIED>\r
-<!ATTLIST item icon CDATA #IMPLIED>\r
-<!ATTLIST item link CDATA #REQUIRED>\r
-<!ATTLIST item tooltip CDATA #IMPLIED>\r
-<!ATTLIST item value CDATA #REQUIRED>\r
-\r
-\r
-<!-- ========== Info Elements ====================================== -->\r
-\r
-<!-- The "description" element contains descriptive (paragraph length) text\r
- about the surrounding element, suitable for use in GUI tools.\r
--->\r
-<!ELEMENT description (#PCDATA)>\r
-<!ATTLIST description id ID #IMPLIED>\r
-\r
-\r
-<!-- The "display-name" element contains a short (one line) description of\r
- the surrounding element, suitable for use in GUI tools.\r
--->\r
-<!ELEMENT display-name (#PCDATA)>\r
-<!ATTLIST display-name id ID #IMPLIED>\r
-\r
-\r
-<!-- The "icon" element contains a small-icon and large-icon element which\r
- specify the location, relative to the Struts configuration file, for small\r
- and large images used to represent the surrounding element in GUI tools.\r
--->\r
-<!ELEMENT icon (small-icon?, large-icon?)>\r
-<!ATTLIST icon id ID #IMPLIED>\r
-\r
-\r
-<!-- The "large-icon" element specifies the location, relative to the Struts\r
- configuration file, of a resource containing a large (32x32 pixel)\r
- icon image.\r
--->\r
-<!ELEMENT large-icon (%Location;)>\r
-<!ATTLIST large-icon id ID #IMPLIED>\r
-\r
-\r
-<!-- The "small-icon" element specifies the location, relative to the Struts\r
- configuration file, of a resource containing a small (16x16 pixel)\r
- icon image.\r
--->\r
-<!ELEMENT small-icon (%Location;)>\r
-<!ATTLIST small-icon id ID #IMPLIED>\r
+++ /dev/null
-<!--\r
- DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED\r
- DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED\r
- \r
- Refer to the below DTD Instead:\r
- \r
- <!DOCTYPE form-validation PUBLIC\r
- "-//Apache Software Foundation//DTD Commons Validator Rules Configuration 1.0//EN"\r
- "http://jakarta.apache.org/commons/dtds/validator_1_0.dtd">\r
-\r
-\r
- $Id: validation_1_1.dtd,v 1.5 2002/11/14 20:33:13 rleland Exp $\r
--->\r
-\r
-\r
-<!--\r
- DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED\r
- DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED \r
- The "form-validation" element is the root of the configuration file\r
- hierarchy, and contains nested elements for all of the other\r
- configuration settings.\r
--->\r
-<!ELEMENT form-validation (global*, formset+)>\r
-\r
-\r
-<!--\r
- DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED\r
- DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED \r
- Global "constants" may be defined for use of other elements.\r
--->\r
-<!ELEMENT global (constant*)>\r
-\r
-\r
-<!--\r
- DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED\r
- DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED \r
- The "constant" element defines a static value that can be used as\r
- replacement parameters within "field" elements. The "constant-name" and\r
- "constant-value" elements define the constant's reference id and\r
- replacement value.\r
--->\r
-<!ELEMENT constant (constant-name, constant-value)>\r
-<!ELEMENT constant-name (#PCDATA)>\r
-<!ELEMENT constant-value (#PCDATA)>\r
-\r
-\r
-<!--\r
- DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED\r
- DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED \r
- The "formset" element defines a set of forms for a locale. Formsets for\r
- specific locales can override only those fields that change. The\r
- localization is properly scoped, so that a formset can override just the\r
- language, or just the country, or both.\r
--->\r
-<!ELEMENT formset (constant*, form+)>\r
-<!ATTLIST formset language CDATA #IMPLIED\r
- country CDATA #IMPLIED >\r
-\r
-\r
-<!--\r
- DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED\r
- DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED \r
- The "form" element defines a set of fields to be validated. The name\r
- corresponds to the identifer the application assigns to the form. In the\r
- case of the Struts framework, this is the attribute property from\r
- the ActionMapping. Struts also offers the alternative of using the\r
- the path property as the Validator form name.\r
--->\r
-<!ELEMENT form (field+ )>\r
-<!ATTLIST form name CDATA #REQUIRED>\r
-\r
-\r
-<!--\r
- DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED\r
- DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED \r
- The "field" element defines the properties to be validated. In a\r
- web application, a field would also correspond to a control on\r
- a HTML form. To validate the properties, the validator works through\r
- a JavaBean representation, like a Struts ActionForm. The field element\r
- can accept up to 4 attributes:\r
-\r
- property The property on the JavaBean corresponding to this\r
- field element.\r
-\r
- depends The comma-delimited list of validators to apply against\r
- this field. For the field to succeed, all the\r
- validators must succeed.\r
-\r
- page The JavaBean corresponding to this form may include\r
- a page property. Only fields with a "page" attribute\r
- value that is equal to or less than the page property\r
- on the form JavaBean are processed. This is useful when\r
- using a "wizard" approach to completing a large form,\r
- to ensure that a page is not skipped.\r
- [0]\r
-\r
- indexedListProperty\r
- The "indexedListProperty" is the method name that will\r
- return an array or a Collection used to retrieve the\r
- list and then loop through the list performing the\r
- validations for this field.\r
-\r
- fieldOrder [:FIXME: is this still supported?]\r
--->\r
-<!ELEMENT field (msg?, arg0?, arg1?, arg2?, arg3?, var* )>\r
-<!ATTLIST field property CDATA #REQUIRED\r
- depends CDATA #IMPLIED\r
- page CDATA #IMPLIED\r
- indexedListProperty CDATA #IMPLIED >\r
-\r
-\r
-<!--\r
- DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED\r
- DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED \r
- The "msg" element defines a custom message key to use when one of the\r
- validators for this field fails. Each validator has a default message\r
- property that is used when a corresonding field msg is not specified.\r
- Each validator applied to a field may have its own msg element.\r
- The msg element accepts up to three attributes.\r
-\r
- name The name of the validator corresponding to this msg.\r
-\r
- key The key that will return the message template from a\r
- resource bundle.\r
-\r
- resource If set to "false", the key is taken to be a literal\r
- value rather than a bundle key.\r
- [true]\r
--->\r
-<!ELEMENT msg EMPTY>\r
-<!ATTLIST msg name CDATA #IMPLIED\r
- key CDATA #IMPLIED\r
- resource CDATA #IMPLIED >\r
-\r
-\r
-<!--\r
- DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED\r
- DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED \r
- The "arg0" element defines the first replacement value to use with the\r
- message template for this validator or this field.\r
- The arg0 element accepts up to three attributes.\r
-\r
- name The name of the validator corresponding to this msg.\r
-\r
- key The key that will return the message template from a\r
- resource bundle.\r
-\r
- resource If set to "false", the key is taken to be a literal\r
- value rather than a bundle key.\r
- [true]\r
--->\r
-<!ELEMENT arg0 EMPTY>\r
-<!ATTLIST arg0 name CDATA #IMPLIED\r
- key CDATA #IMPLIED\r
- resource CDATA #IMPLIED >\r
-\r
-\r
-<!--\r
- DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED\r
- DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED \r
- The "arg1" element defines the second replacement value to use with the\r
- message template for this validator or this field.\r
- The arg1 element accepts up to three attributes.\r
-\r
- name The name of the validator corresponding to this msg.\r
-\r
- key The key that will return the message template from a\r
- resource bundle.\r
-\r
- resource If set to "false", the key is taken to be a literal\r
- value rather than a bundle key.\r
- [true]\r
--->\r
-<!ELEMENT arg1 EMPTY>\r
-<!ATTLIST arg1 name CDATA #IMPLIED\r
- key CDATA #IMPLIED\r
- resource CDATA #IMPLIED >\r
-\r
-\r
-<!--\r
- DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED\r
- DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED \r
- The "arg2" element defines the third replacement value to use with the\r
- message template for this validator or this field.\r
- The arg2 element accepts up to three attributes.\r
-\r
- name The name of the validator corresponding to this msg.\r
-\r
- key The key that will return the message template from a\r
- resource bundle.\r
-\r
- resource If set to "false", the key is taken to be a literal\r
- value rather than a bundle key.\r
- [true]\r
--->\r
-<!ELEMENT arg2 EMPTY>\r
-<!ATTLIST arg2 name CDATA #IMPLIED\r
- key CDATA #IMPLIED\r
- resource CDATA #IMPLIED >\r
-\r
-<!--\r
- DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED\r
- DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED \r
- The "arg3" element defines the fourth replacement value to use with the\r
- message template for this validator or this field.\r
- The arg0 element accepts up to three attributes.\r
-\r
- name The name of the validator corresponding to this msg.\r
-\r
- key The key that will return the message template from a\r
- resource bundle.\r
-\r
- resource If set to "false", the key is taken to be a literal\r
- value rather than a bundle key.\r
- [true]\r
--->\r
-<!ELEMENT arg3 EMPTY>\r
-<!ATTLIST arg3 name CDATA #IMPLIED\r
- key CDATA #IMPLIED\r
- resource CDATA #IMPLIED >\r
-\r
-\r
-<!--\r
- DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED\r
- DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED \r
- The "var" element can set parameters that a field may need to pass to\r
- one of its validators, such as the minimum and maximum values in a\r
- range validation. These parameters may also be referenced by one of the\r
- arg? elements using a shell syntax: ${var:var-name}.\r
--->\r
-<!ELEMENT var (var-name, var-value)>\r
-\r
-\r
-\r
-<!--\r
- DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED\r
- DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED \r
- The name of the var parameter to provide to a field's validators.\r
--->\r
-<!ELEMENT var-name (#PCDATA)>\r
-\r
-\r
-\r
-<!--\r
- DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED\r
- DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED \r
- The value of the var parameter to provide to a field's validators.\r
--->\r
-<!ELEMENT var-value (#PCDATA)>\r
-\r
-<!-- eof -->
\ No newline at end of file
+++ /dev/null
-<!DOCTYPE form-validation PUBLIC\r
- "-//Apache Software Foundation//DTD Commons Validator Rules Configuration 1.0//EN"\r
- "http://jakarta.apache.org/commons/dtds/validator_1_0.dtd">\r
-<!--\r
-\r
- This file contains the default Struts Validator pluggable validator\r
- definitions. It should be placed somewhere under /WEB-INF and\r
- referenced in the struts-config.xml under the plug-in element\r
- for the ValidatorPlugIn.\r
-\r
- <plug-in className="org.apache.struts.validator.ValidatorPlugIn">\r
- <set-property property="pathnames" value="/WEB-INF/validator-rules.xml,\r
- /WEB-INF/validation.xml"/>\r
- </plug-in>\r
-\r
- These are the default error messages associated with\r
- each validator defined in this file. They should be\r
- added to your projects ApplicationResources.properties\r
- file or you can associate new ones by modifying the\r
- pluggable validators msg attributes in this file.\r
-\r
- # Struts Validator Error Messages\r
- errors.required={0} is required.\r
- errors.minlength={0} can not be less than {1} characters.\r
- errors.maxlength={0} can not be greater than {1} characters.\r
- errors.invalid={0} is invalid.\r
-\r
- errors.byte={0} must be a byte.\r
- errors.short={0} must be a short.\r
- errors.integer={0} must be an integer.\r
- errors.long={0} must be a long.\r
- errors.float={0} must be a float.\r
- errors.double={0} must be a double.\r
-\r
- errors.date={0} is not a date.\r
- errors.range={0} is not in the range {1} through {2}.\r
- errors.creditcard={0} is an invalid credit card number.\r
- errors.email={0} is an invalid e-mail address.\r
-\r
--->\r
-\r
-<form-validation>\r
-\r
- <global>\r
-\r
- <validator name="required"\r
- classname="org.apache.struts.validator.FieldChecks"\r
- method="validateRequired"\r
- methodParams="java.lang.Object,\r
- org.apache.commons.validator.ValidatorAction,\r
- org.apache.commons.validator.Field,\r
- org.apache.struts.action.ActionErrors,\r
- javax.servlet.http.HttpServletRequest"\r
- msg="errors.required">\r
-\r
- <javascript><![CDATA[\r
- function validateRequired(form) {\r
- var isValid = true;\r
- var focusField = null;\r
- var i = 0;\r
- var fields = new Array();\r
- oRequired = new required();\r
- for (x in oRequired) {\r
- var field = form[oRequired[x][0]];\r
- \r
- if (field.type == 'text' ||\r
- field.type == 'textarea' ||\r
- field.type == 'file' ||\r
- field.type == 'select-one' ||\r
- field.type == 'radio' ||\r
- field.type == 'password') {\r
- \r
- var value = '';\r
- // get field's value\r
- if (field.type == "select-one") {\r
- var si = field.selectedIndex;\r
- if (si >= 0) {\r
- value = field.options[si].value;\r
- }\r
- } else {\r
- value = field.value;\r
- }\r
- \r
- if (trim(value).length == 0) {\r
- \r
- if (i == 0) {\r
- focusField = field;\r
- }\r
- fields[i++] = oRequired[x][1];\r
- isValid = false;\r
- }\r
- }\r
- }\r
- if (fields.length > 0) {\r
- focusField.focus();\r
- alert(fields.join('\n'));\r
- }\r
- return isValid;\r
- }\r
- \r
- // Trim whitespace from left and right sides of s.\r
- function trim(s) {\r
- return s.replace( /^\s*/, "" ).replace( /\s*$/, "" );\r
- }\r
- \r
- ]]>\r
- </javascript>\r
-\r
- </validator>\r
-\r
- <validator name="requiredif"\r
- classname="org.apache.struts.validator.FieldChecks"\r
- method="validateRequiredIf"\r
- methodParams="java.lang.Object,\r
- org.apache.commons.validator.ValidatorAction,\r
- org.apache.commons.validator.Field,\r
- org.apache.struts.action.ActionErrors,\r
- org.apache.commons.validator.Validator,\r
- javax.servlet.http.HttpServletRequest"\r
- msg="errors.required">\r
- </validator>\r
-\r
- <validator name="minlength"\r
- classname="org.apache.struts.validator.FieldChecks"\r
- method="validateMinLength"\r
- methodParams="java.lang.Object,\r
- org.apache.commons.validator.ValidatorAction,\r
- org.apache.commons.validator.Field,\r
- org.apache.struts.action.ActionErrors,\r
- javax.servlet.http.HttpServletRequest"\r
- depends=""\r
- msg="errors.minlength">\r
-\r
- <javascript><![CDATA[\r
- function validateMinLength(form) {\r
- var isValid = true;\r
- var focusField = null;\r
- var i = 0;\r
- var fields = new Array();\r
- oMinLength = new minlength();\r
- for (x in oMinLength) {\r
- var field = form[oMinLength[x][0]];\r
- \r
- if (field.type == 'text' ||\r
- field.type == 'textarea') {\r
- \r
- var iMin = parseInt(oMinLength[x][2]("minlength"));\r
- if ((trim(field.value).length > 0) && (field.value.length < iMin)) {\r
- if (i == 0) {\r
- focusField = field;\r
- }\r
- fields[i++] = oMinLength[x][1];\r
- isValid = false;\r
- }\r
- }\r
- }\r
- if (fields.length > 0) {\r
- focusField.focus();\r
- alert(fields.join('\n'));\r
- }\r
- return isValid;\r
- }]]>\r
- </javascript>\r
-\r
- </validator>\r
-\r
-\r
- <validator name="maxlength"\r
- classname="org.apache.struts.validator.FieldChecks"\r
- method="validateMaxLength"\r
- methodParams="java.lang.Object,\r
- org.apache.commons.validator.ValidatorAction,\r
- org.apache.commons.validator.Field,\r
- org.apache.struts.action.ActionErrors,\r
- javax.servlet.http.HttpServletRequest"\r
- depends=""\r
- msg="errors.maxlength">\r
-\r
- <javascript><![CDATA[\r
- function validateMaxLength(form) {\r
- var isValid = true;\r
- var focusField = null;\r
- var i = 0;\r
- var fields = new Array();\r
- oMaxLength = new maxlength();\r
- for (x in oMaxLength) {\r
- var field = form[oMaxLength[x][0]];\r
- \r
- if (field.type == 'text' ||\r
- field.type == 'textarea') {\r
- \r
- var iMax = parseInt(oMaxLength[x][2]("maxlength"));\r
- if (field.value.length > iMax) {\r
- if (i == 0) {\r
- focusField = field;\r
- }\r
- fields[i++] = oMaxLength[x][1];\r
- isValid = false;\r
- }\r
- }\r
- }\r
- if (fields.length > 0) {\r
- focusField.focus();\r
- alert(fields.join('\n'));\r
- }\r
- return isValid;\r
- }]]>\r
- </javascript>\r
-\r
- </validator>\r
-\r
-\r
- <validator name="mask"\r
- classname="org.apache.struts.validator.FieldChecks"\r
- method="validateMask"\r
- methodParams="java.lang.Object,\r
- org.apache.commons.validator.ValidatorAction,\r
- org.apache.commons.validator.Field,\r
- org.apache.struts.action.ActionErrors,\r
- javax.servlet.http.HttpServletRequest"\r
- depends=""\r
- msg="errors.invalid">\r
-\r
- <javascript><![CDATA[\r
- function validateMask(form) {\r
- var isValid = true;\r
- var focusField = null;\r
- var i = 0;\r
- var fields = new Array();\r
- oMasked = new mask();\r
- for (x in oMasked) {\r
- var field = form[oMasked[x][0]];\r
- \r
- if ((field.type == 'text' || \r
- field.type == 'textarea') && \r
- (field.value.length > 0)) {\r
- \r
- if (!matchPattern(field.value, oMasked[x][2]("mask"))) {\r
- if (i == 0) {\r
- focusField = field;\r
- }\r
- fields[i++] = oMasked[x][1];\r
- isValid = false;\r
- }\r
- }\r
- }\r
- \r
- if (fields.length > 0) {\r
- focusField.focus();\r
- alert(fields.join('\n'));\r
- }\r
- return isValid;\r
- }\r
-\r
- function matchPattern(value, mask) {\r
- return mask.exec(value);\r
- }]]>\r
- </javascript>\r
-\r
- </validator>\r
-\r
-\r
- <validator name="byte"\r
- classname="org.apache.struts.validator.FieldChecks"\r
- method="validateByte"\r
- methodParams="java.lang.Object,\r
- org.apache.commons.validator.ValidatorAction,\r
- org.apache.commons.validator.Field,\r
- org.apache.struts.action.ActionErrors,\r
- javax.servlet.http.HttpServletRequest"\r
- depends=""\r
- msg="errors.byte"\r
- jsFunctionName="ByteValidations">\r
-\r
- <javascript><![CDATA[\r
- function validateByte(form) {\r
- var bValid = true;\r
- var focusField = null;\r
- var i = 0;\r
- var fields = new Array();\r
- oByte = new ByteValidations();\r
- for (x in oByte) {\r
- var field = form[oByte[x][0]];\r
- \r
- if (field.type == 'text' ||\r
- field.type == 'textarea' ||\r
- field.type == 'select-one' ||\r
- field.type == 'radio') {\r
-\r
- var value = '';\r
- // get field's value\r
- if (field.type == "select-one") {\r
- var si = field.selectedIndex;\r
- if (si >= 0) {\r
- value = field.options[si].value;\r
- }\r
- } else {\r
- value = field.value;\r
- }\r
- \r
- if (value.length > 0) {\r
- if (!isAllDigits(value)) {\r
- bValid = false;\r
- if (i == 0) {\r
- focusField = field;\r
- }\r
- fields[i++] = oByte[x][1];\r
-\r
- } else {\r
-\r
- var iValue = parseInt(value);\r
- if (isNaN(iValue) || !(iValue >= -128 && iValue <= 127)) {\r
- if (i == 0) {\r
- focusField = field;\r
- }\r
- fields[i++] = oByte[x][1];\r
- bValid = false;\r
- }\r
- }\r
- }\r
- \r
- }\r
- }\r
- if (fields.length > 0) {\r
- focusField.focus();\r
- alert(fields.join('\n'));\r
- }\r
- return bValid;\r
- }]]>\r
- </javascript>\r
-\r
- </validator>\r
-\r
-\r
- <validator name="short"\r
- classname="org.apache.struts.validator.FieldChecks"\r
- method="validateShort"\r
- methodParams="java.lang.Object,\r
- org.apache.commons.validator.ValidatorAction,\r
- org.apache.commons.validator.Field,\r
- org.apache.struts.action.ActionErrors,\r
- javax.servlet.http.HttpServletRequest"\r
- depends=""\r
- msg="errors.short"\r
- jsFunctionName="ShortValidations">\r
-\r
- <javascript><![CDATA[\r
- function validateShort(form) {\r
- var bValid = true;\r
- var focusField = null;\r
- var i = 0;\r
- var fields = new Array();\r
- oShort = new ShortValidations();\r
- for (x in oShort) {\r
- var field = form[oShort[x][0]];\r
- \r
- if (field.type == 'text' ||\r
- field.type == 'textarea' ||\r
- field.type == 'select-one' ||\r
- field.type == 'radio') {\r
- \r
- var value = '';\r
- // get field's value\r
- if (field.type == "select-one") {\r
- var si = field.selectedIndex;\r
- if (si >= 0) {\r
- value = field.options[si].value;\r
- }\r
- } else {\r
- value = field.value;\r
- }\r
- \r
- if (value.length > 0) {\r
- if (!isAllDigits(value)) {\r
- bValid = false;\r
- if (i == 0) {\r
- focusField = field;\r
- }\r
- fields[i++] = oShort[x][1];\r
-\r
- } else {\r
- \r
- var iValue = parseInt(value);\r
- if (isNaN(iValue) || !(iValue >= -32768 && iValue <= 32767)) {\r
- if (i == 0) {\r
- focusField = field;\r
- }\r
- fields[i++] = oShort[x][1];\r
- bValid = false;\r
- }\r
- }\r
- }\r
- }\r
- }\r
- if (fields.length > 0) {\r
- focusField.focus();\r
- alert(fields.join('\n'));\r
- }\r
- return bValid;\r
- }]]>\r
- </javascript>\r
-\r
- </validator>\r
-\r
-\r
- <validator name="integer"\r
- classname="org.apache.struts.validator.FieldChecks"\r
- method="validateInteger"\r
- methodParams="java.lang.Object,\r
- org.apache.commons.validator.ValidatorAction,\r
- org.apache.commons.validator.Field,\r
- org.apache.struts.action.ActionErrors,\r
- javax.servlet.http.HttpServletRequest"\r
- depends=""\r
- msg="errors.integer"\r
- jsFunctionName="IntegerValidations">\r
-\r
- <javascript><![CDATA[\r
- function validateInteger(form) {\r
- var bValid = true;\r
- var focusField = null;\r
- var i = 0;\r
- var fields = new Array();\r
- oInteger = new IntegerValidations();\r
- for (x in oInteger) {\r
- var field = form[oInteger[x][0]];\r
-\r
- if (field.type == 'text' ||\r
- field.type == 'textarea' ||\r
- field.type == 'select-one' ||\r
- field.type == 'radio') {\r
- \r
- var value = '';\r
- // get field's value\r
- if (field.type == "select-one") {\r
- var si = field.selectedIndex;\r
- if (si >= 0) {\r
- value = field.options[si].value;\r
- }\r
- } else {\r
- value = field.value;\r
- }\r
- \r
- if (value.length > 0) {\r
- \r
- if (!isAllDigits(value)) {\r
- bValid = false;\r
- if (i == 0) {\r
- focusField = field;\r
- }\r
- fields[i++] = oInteger[x][1];\r
- \r
- } else {\r
- var iValue = parseInt(value);\r
- if (isNaN(iValue) || !(iValue >= -2147483648 && iValue <= 2147483647)) {\r
- if (i == 0) {\r
- focusField = field;\r
- }\r
- fields[i++] = oInteger[x][1];\r
- bValid = false;\r
- }\r
- }\r
- }\r
- }\r
- }\r
- if (fields.length > 0) {\r
- focusField.focus();\r
- alert(fields.join('\n'));\r
- }\r
- return bValid;\r
- }\r
-\r
- function isAllDigits(argvalue) {\r
- argvalue = argvalue.toString();\r
- var validChars = "0123456789";\r
- var startFrom = 0;\r
- if (argvalue.substring(0, 2) == "0x") {\r
- validChars = "0123456789abcdefABCDEF";\r
- startFrom = 2;\r
- } else if (argvalue.charAt(0) == "0") {\r
- validChars = "01234567";\r
- startFrom = 1;\r
- } else if (argvalue.charAt(0) == "-") {\r
- startFrom = 1;\r
- }\r
- \r
- for (var n = startFrom; n < argvalue.length; n++) {\r
- if (validChars.indexOf(argvalue.substring(n, n+1)) == -1) return false;\r
- }\r
- return true;\r
- }]]>\r
- </javascript>\r
-\r
- </validator>\r
-\r
-\r
- <validator name="long"\r
- classname="org.apache.struts.validator.FieldChecks"\r
- method="validateLong"\r
- methodParams="java.lang.Object,\r
- org.apache.commons.validator.ValidatorAction,\r
- org.apache.commons.validator.Field,\r
- org.apache.struts.action.ActionErrors,\r
- javax.servlet.http.HttpServletRequest"\r
- depends=""\r
- msg="errors.long"/>\r
-\r
-\r
- <validator name="float"\r
- classname="org.apache.struts.validator.FieldChecks"\r
- method="validateFloat"\r
- methodParams="java.lang.Object,\r
- org.apache.commons.validator.ValidatorAction,\r
- org.apache.commons.validator.Field,\r
- org.apache.struts.action.ActionErrors,\r
- javax.servlet.http.HttpServletRequest"\r
- depends=""\r
- msg="errors.float"\r
- jsFunctionName="FloatValidations">\r
-\r
- <javascript><![CDATA[\r
- function validateFloat(form) {\r
- var bValid = true;\r
- var focusField = null;\r
- var i = 0;\r
- var fields = new Array();\r
- oFloat = new FloatValidations();\r
- for (x in oFloat) {\r
- var field = form[oFloat[x][0]];\r
- \r
- if (field.type == 'text' ||\r
- field.type == 'textarea' ||\r
- field.type == 'select-one' ||\r
- field.type == 'radio') {\r
- \r
- var value = '';\r
- // get field's value\r
- if (field.type == "select-one") {\r
- var si = field.selectedIndex;\r
- if (si >= 0) {\r
- value = field.options[si].value;\r
- }\r
- } else {\r
- value = field.value;\r
- }\r
- \r
- if (value.length > 0) {\r
- // remove '.' before checking digits\r
- var tempArray = value.split('.');\r
- var joinedString= tempArray.join('');\r
-\r
- if (!isAllDigits(joinedString)) {\r
- bValid = false;\r
- if (i == 0) {\r
- focusField = field;\r
- }\r
- fields[i++] = oFloat[x][1];\r
-\r
- } else {\r
- var iValue = parseFloat(value);\r
- if (isNaN(iValue)) {\r
- if (i == 0) {\r
- focusField = field;\r
- }\r
- fields[i++] = oFloat[x][1];\r
- bValid = false;\r
- }\r
- }\r
- }\r
- }\r
- }\r
- if (fields.length > 0) {\r
- focusField.focus();\r
- alert(fields.join('\n'));\r
- }\r
- return bValid;\r
- }]]>\r
- </javascript>\r
-\r
- </validator>\r
-\r
-\r
- <validator name="double"\r
- classname="org.apache.struts.validator.FieldChecks"\r
- method="validateDouble"\r
- methodParams="java.lang.Object,\r
- org.apache.commons.validator.ValidatorAction,\r
- org.apache.commons.validator.Field,\r
- org.apache.struts.action.ActionErrors,\r
- javax.servlet.http.HttpServletRequest"\r
- depends=""\r
- msg="errors.double"/>\r
-\r
-\r
- <validator name="date"\r
- classname="org.apache.struts.validator.FieldChecks"\r
- method="validateDate"\r
- methodParams="java.lang.Object,\r
- org.apache.commons.validator.ValidatorAction,\r
- org.apache.commons.validator.Field,\r
- org.apache.struts.action.ActionErrors,\r
- javax.servlet.http.HttpServletRequest"\r
- depends=""\r
- msg="errors.date"\r
- jsFunctionName="DateValidations">\r
-\r
- <javascript><![CDATA[\r
- function validateDate(form) {\r
- var bValid = true;\r
- var focusField = null;\r
- var i = 0;\r
- var fields = new Array();\r
- oDate = new DateValidations();\r
- for (x in oDate) {\r
- var value = form[oDate[x][0]].value;\r
- var datePattern = oDate[x][2]("datePatternStrict");\r
- if ((form[oDate[x][0]].type == 'text' ||\r
- form[oDate[x][0]].type == 'textarea') &&\r
- (value.length > 0) &&\r
- (datePattern.length > 0)) {\r
- var MONTH = "MM";\r
- var DAY = "dd";\r
- var YEAR = "yyyy";\r
- var orderMonth = datePattern.indexOf(MONTH);\r
- var orderDay = datePattern.indexOf(DAY);\r
- var orderYear = datePattern.indexOf(YEAR);\r
- if ((orderDay < orderYear && orderDay > orderMonth)) {\r
- var iDelim1 = orderMonth + MONTH.length;\r
- var iDelim2 = orderDay + DAY.length;\r
- var delim1 = datePattern.substring(iDelim1, iDelim1 + 1);\r
- var delim2 = datePattern.substring(iDelim2, iDelim2 + 1);\r
- if (iDelim1 == orderDay && iDelim2 == orderYear) {\r
- dateRegexp = new RegExp("^(\\d{2})(\\d{2})(\\d{4})$");\r
- } else if (iDelim1 == orderDay) {\r
- dateRegexp = new RegExp("^(\\d{2})(\\d{2})[" + delim2 + "](\\d{4})$");\r
- } else if (iDelim2 == orderYear) {\r
- dateRegexp = new RegExp("^(\\d{2})[" + delim1 + "](\\d{2})(\\d{4})$");\r
- } else {\r
- dateRegexp = new RegExp("^(\\d{2})[" + delim1 + "](\\d{2})[" + delim2 + "](\\d{4})$");\r
- }\r
- var matched = dateRegexp.exec(value);\r
- if(matched != null) {\r
- if (!isValidDate(matched[2], matched[1], matched[3])) {\r
- if (i == 0) {\r
- focusField = form[oDate[x][0]];\r
- }\r
- fields[i++] = oDate[x][1];\r
- bValid = false;\r
- }\r
- } else {\r
- if (i == 0) {\r
- focusField = form[oDate[x][0]];\r
- }\r
- fields[i++] = oDate[x][1];\r
- bValid = false;\r
- }\r
- } else if ((orderMonth < orderYear && orderMonth > orderDay)) {\r
- var iDelim1 = orderDay + DAY.length;\r
- var iDelim2 = orderMonth + MONTH.length;\r
- var delim1 = datePattern.substring(iDelim1, iDelim1 + 1);\r
- var delim2 = datePattern.substring(iDelim2, iDelim2 + 1);\r
- if (iDelim1 == orderMonth && iDelim2 == orderYear) {\r
- dateRegexp = new RegExp("^(\\d{2})(\\d{2})(\\d{4})$");\r
- } else if (iDelim1 == orderMonth) {\r
- dateRegexp = new RegExp("^(\\d{2})(\\d{2})[" + delim2 + "](\\d{4})$");\r
- } else if (iDelim2 == orderYear) {\r
- dateRegexp = new RegExp("^(\\d{2})[" + delim1 + "](\\d{2})(\\d{4})$");\r
- } else {\r
- dateRegexp = new RegExp("^(\\d{2})[" + delim1 + "](\\d{2})[" + delim2 + "](\\d{4})$");\r
- }\r
- var matched = dateRegexp.exec(value);\r
- if(matched != null) {\r
- if (!isValidDate(matched[1], matched[2], matched[3])) {\r
- if (i == 0) {\r
- focusField = form[oDate[x][0]];\r
- }\r
- fields[i++] = oDate[x][1];\r
- bValid = false;\r
- }\r
- } else {\r
- if (i == 0) {\r
- focusField = form[oDate[x][0]];\r
- }\r
- fields[i++] = oDate[x][1];\r
- bValid = false;\r
- }\r
- } else if ((orderMonth > orderYear && orderMonth < orderDay)) {\r
- var iDelim1 = orderYear + YEAR.length;\r
- var iDelim2 = orderMonth + MONTH.length;\r
- var delim1 = datePattern.substring(iDelim1, iDelim1 + 1);\r
- var delim2 = datePattern.substring(iDelim2, iDelim2 + 1);\r
- if (iDelim1 == orderMonth && iDelim2 == orderDay) {\r
- dateRegexp = new RegExp("^(\\d{4})(\\d{2})(\\d{2})$");\r
- } else if (iDelim1 == orderMonth) {\r
- dateRegexp = new RegExp("^(\\d{4})(\\d{2})[" + delim2 + "](\\d{2})$");\r
- } else if (iDelim2 == orderDay) {\r
- dateRegexp = new RegExp("^(\\d{4})[" + delim1 + "](\\d{2})(\\d{2})$");\r
- } else {\r
- dateRegexp = new RegExp("^(\\d{4})[" + delim1 + "](\\d{2})[" + delim2 + "](\\d{2})$");\r
- }\r
- var matched = dateRegexp.exec(value);\r
- if(matched != null) {\r
- if (!isValidDate(matched[3], matched[2], matched[1])) {\r
- if (i == 0) {\r
- focusField = form[oDate[x][0]];\r
- }\r
- fields[i++] = oDate[x][1];\r
- bValid = false;\r
- }\r
- } else {\r
- if (i == 0) {\r
- focusField = form[oDate[x][0]];\r
- }\r
- fields[i++] = oDate[x][1];\r
- bValid = false;\r
- }\r
- } else {\r
- if (i == 0) {\r
- focusField = form[oDate[x][0]];\r
- }\r
- fields[i++] = oDate[x][1];\r
- bValid = false;\r
- }\r
- }\r
- }\r
- if (fields.length > 0) {\r
- focusField.focus();\r
- alert(fields.join('\n'));\r
- }\r
- return bValid;\r
- }\r
-\r
- function isValidDate(day, month, year) {\r
- if (month < 1 || month > 12) {\r
- return false;\r
- }\r
- if (day < 1 || day > 31) {\r
- return false;\r
- }\r
- if ((month == 4 || month == 6 || month == 9 || month == 11) &&\r
- (day == 31)) {\r
- return false;\r
- }\r
- if (month == 2) {\r
- var leap = (year % 4 == 0 &&\r
- (year % 100 != 0 || year % 400 == 0));\r
- if (day>29 || (day == 29 && !leap)) {\r
- return false;\r
- }\r
- }\r
- return true;\r
- }]]>\r
- </javascript>\r
-\r
- </validator>\r
-\r
-<!-- range is deprecated use intRange instead -->\r
- <validator name="range"\r
- classname="org.apache.struts.validator.FieldChecks"\r
- method="validateIntRange"\r
- methodParams="java.lang.Object,\r
- org.apache.commons.validator.ValidatorAction,\r
- org.apache.commons.validator.Field,\r
- org.apache.struts.action.ActionErrors,\r
- javax.servlet.http.HttpServletRequest"\r
- depends="integer"\r
- msg="errors.range">\r
-\r
- <javascript><![CDATA[\r
- function validateRange(form) {\r
- return validateIntRange(form);\r
- }]]>\r
- </javascript>\r
-\r
- </validator>\r
-\r
- <validator name="intRange"\r
- classname="org.apache.struts.validator.FieldChecks"\r
- method="validateIntRange"\r
- methodParams="java.lang.Object,\r
- org.apache.commons.validator.ValidatorAction,\r
- org.apache.commons.validator.Field,\r
- org.apache.struts.action.ActionErrors,\r
- javax.servlet.http.HttpServletRequest"\r
- depends="integer"\r
- msg="errors.range">\r
-\r
- <javascript><![CDATA[\r
- function validateIntRange(form) {\r
- var isValid = true;\r
- var focusField = null;\r
- var i = 0;\r
- var fields = new Array();\r
- oRange = new intRange();\r
- for (x in oRange) {\r
- var field = form[oRange[x][0]];\r
- \r
- if ((field.type == 'text' ||\r
- field.type == 'textarea') &&\r
- (field.value.length > 0)) {\r
- \r
- var iMin = parseInt(oRange[x][2]("min"));\r
- var iMax = parseInt(oRange[x][2]("max"));\r
- var iValue = parseInt(field.value);\r
- if (!(iValue >= iMin && iValue <= iMax)) {\r
- if (i == 0) {\r
- focusField = field;\r
- }\r
- fields[i++] = oRange[x][1];\r
- isValid = false;\r
- }\r
- }\r
- }\r
- if (fields.length > 0) {\r
- focusField.focus();\r
- alert(fields.join('\n'));\r
- }\r
- return isValid;\r
- }]]>\r
- </javascript>\r
-\r
- </validator>\r
-\r
- <validator name="floatRange"\r
- classname="org.apache.struts.validator.FieldChecks"\r
- method="validateFloatRange"\r
- methodParams="java.lang.Object,\r
- org.apache.commons.validator.ValidatorAction,\r
- org.apache.commons.validator.Field,\r
- org.apache.struts.action.ActionErrors,\r
- javax.servlet.http.HttpServletRequest"\r
- depends="float"\r
- msg="errors.range">\r
-\r
- <javascript><![CDATA[\r
- function validateFloatRange(form) {\r
- var isValid = true;\r
- var focusField = null;\r
- var i = 0;\r
- var fields = new Array();\r
- oRange = new floatRange();\r
- for (x in oRange) {\r
- var field = form[oRange[x][0]];\r
- \r
- if ((field.type == 'text' ||\r
- field.type == 'textarea') &&\r
- (field.value.length > 0)) {\r
- \r
- var fMin = parseFloat(oRange[x][2]("min"));\r
- var fMax = parseFloat(oRange[x][2]("max"));\r
- var fValue = parseFloat(field.value);\r
- if (!(fValue >= fMin && fValue <= fMax)) {\r
- if (i == 0) {\r
- focusField = field;\r
- }\r
- fields[i++] = oRange[x][1];\r
- isValid = false;\r
- }\r
- }\r
- }\r
- if (fields.length > 0) {\r
- focusField.focus();\r
- alert(fields.join('\n'));\r
- }\r
- return isValid;\r
- }]]>\r
- </javascript>\r
-\r
- </validator>\r
-\r
- <validator name="creditCard"\r
- classname="org.apache.struts.validator.FieldChecks"\r
- method="validateCreditCard"\r
- methodParams="java.lang.Object,\r
- org.apache.commons.validator.ValidatorAction,\r
- org.apache.commons.validator.Field,\r
- org.apache.struts.action.ActionErrors,\r
- javax.servlet.http.HttpServletRequest"\r
- depends=""\r
- msg="errors.creditcard">\r
-\r
- <javascript><![CDATA[\r
- function validateCreditCard(form) {\r
- var bValid = true;\r
- var focusField = null;\r
- var i = 0;\r
- var fields = new Array();\r
- oCreditCard = new creditCard();\r
- for (x in oCreditCard) {\r
- if ((form[oCreditCard[x][0]].type == 'text' ||\r
- form[oCreditCard[x][0]].type == 'textarea') &&\r
- (form[oCreditCard[x][0]].value.length > 0)) {\r
- if (!luhnCheck(form[oCreditCard[x][0]].value)) {\r
- if (i == 0) {\r
- focusField = form[oCreditCard[x][0]];\r
- }\r
- fields[i++] = oCreditCard[x][1];\r
- bValid = false;\r
- }\r
- }\r
- }\r
- if (fields.length > 0) {\r
- focusField.focus();\r
- alert(fields.join('\n'));\r
- }\r
- return bValid;\r
- }\r
-\r
- /**\r
- * Reference: http://www.ling.nwu.edu/~sburke/pub/luhn_lib.pl\r
- */\r
- function luhnCheck(cardNumber) {\r
- if (isLuhnNum(cardNumber)) {\r
- var no_digit = cardNumber.length;\r
- var oddoeven = no_digit & 1;\r
- var sum = 0;\r
- for (var count = 0; count < no_digit; count++) {\r
- var digit = parseInt(cardNumber.charAt(count));\r
- if (!((count & 1) ^ oddoeven)) {\r
- digit *= 2;\r
- if (digit > 9) digit -= 9;\r
- };\r
- sum += digit;\r
- };\r
- if (sum == 0) return false;\r
- if (sum % 10 == 0) return true;\r
- };\r
- return false;\r
- }\r
-\r
- function isLuhnNum(argvalue) {\r
- argvalue = argvalue.toString();\r
- if (argvalue.length == 0) {\r
- return false;\r
- }\r
- for (var n = 0; n < argvalue.length; n++) {\r
- if ((argvalue.substring(n, n+1) < "0") ||\r
- (argvalue.substring(n,n+1) > "9")) {\r
- return false;\r
- }\r
- }\r
- return true;\r
- }]]>\r
- </javascript>\r
-\r
- </validator>\r
-\r
-\r
- <validator name="email"\r
- classname="org.apache.struts.validator.FieldChecks"\r
- method="validateEmail"\r
- methodParams="java.lang.Object,\r
- org.apache.commons.validator.ValidatorAction,\r
- org.apache.commons.validator.Field,\r
- org.apache.struts.action.ActionErrors,\r
- javax.servlet.http.HttpServletRequest"\r
- depends=""\r
- msg="errors.email">\r
-\r
- <javascript><![CDATA[\r
- function validateEmail(form) {\r
- var bValid = true;\r
- var focusField = null;\r
- var i = 0;\r
- var fields = new Array();\r
- oEmail = new email();\r
- for (x in oEmail) {\r
- if ((form[oEmail[x][0]].type == 'text' ||\r
- form[oEmail[x][0]].type == 'textarea') &&\r
- (form[oEmail[x][0]].value.length > 0)) {\r
- if (!checkEmail(form[oEmail[x][0]].value)) {\r
- if (i == 0) {\r
- focusField = form[oEmail[x][0]];\r
- }\r
- fields[i++] = oEmail[x][1];\r
- bValid = false;\r
- }\r
- }\r
- }\r
- if (fields.length > 0) {\r
- focusField.focus();\r
- alert(fields.join('\n'));\r
- }\r
- return bValid;\r
- }\r
-\r
- /**\r
- * Reference: Sandeep V. Tamhankar (stamhankar@hotmail.com),\r
- * http://javascript.internet.com\r
- */\r
- function checkEmail(emailStr) {\r
- if (emailStr.length == 0) {\r
- return true;\r
- }\r
- var emailPat=/^(.+)@(.+)$/;\r
- var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]";\r
- var validChars="\[^\\s" + specialChars + "\]";\r
- var quotedUser="(\"[^\"]*\")";\r
- var ipDomainPat=/^(\d{1,3})[.](\d{1,3})[.](\d{1,3})[.](\d{1,3})$/;\r
- var atom=validChars + '+';\r
- var word="(" + atom + "|" + quotedUser + ")";\r
- var userPat=new RegExp("^" + word + "(\\." + word + ")*$");\r
- var domainPat=new RegExp("^" + atom + "(\\." + atom + ")*$");\r
- var matchArray=emailStr.match(emailPat);\r
- if (matchArray == null) {\r
- return false;\r
- }\r
- var user=matchArray[1];\r
- var domain=matchArray[2];\r
- if (user.match(userPat) == null) {\r
- return false;\r
- }\r
- var IPArray = domain.match(ipDomainPat);\r
- if (IPArray != null) {\r
- for (var i = 1; i <= 4; i++) {\r
- if (IPArray[i] > 255) {\r
- return false;\r
- }\r
- }\r
- return true;\r
- }\r
- var domainArray=domain.match(domainPat);\r
- if (domainArray == null) {\r
- return false;\r
- }\r
- var atomPat=new RegExp(atom,"g");\r
- var domArr=domain.match(atomPat);\r
- var len=domArr.length;\r
- if ((domArr[domArr.length-1].length < 2) ||\r
- (domArr[domArr.length-1].length > 3)) {\r
- return false;\r
- }\r
- if (len < 2) {\r
- return false;\r
- }\r
- return true;\r
- }]]>\r
- </javascript>\r
-\r
- </validator>\r
-\r
- </global>\r
-\r
-</form-validation>\r
+++ /dev/null
-<!--\r
- DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED\r
- DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED \r
- \r
- Refer to the below DTD Instead:\r
- \r
- <!DOCTYPE form-validation PUBLIC\r
- "-//Apache Software Foundation//DTD Commons Validator Rules Configuration 1.0//EN"\r
- "http://jakarta.apache.org/commons/dtds/validator_1_0.dtd">\r
-\r
-\r
- $Id: validator-rules_1_1.dtd,v 1.6 2002/11/14 20:33:13 rleland Exp $\r
--->\r
-\r
-\r
-<!-- =================================================== Top Level Elements -->\r
-\r
-\r
-<!--\r
- DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED\r
- DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED \r
- The "form-validation" element is the root of the configuration file\r
- hierarchy, and contains nested elements for all of the other\r
- configuration settings.\r
--->\r
-<!ELEMENT form-validation (global+)>\r
-\r
-\r
-<!--\r
- DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED\r
- DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED \r
- The elements defined here are all global and must be nested within a\r
- "global" element.\r
--->\r
-<!ELEMENT global (validator+)>\r
-\r
-\r
-<!--\r
- DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED\r
- DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED \r
- The "validator" element defines what validators objects can be used with\r
- the fields referenced by the formset elements. The validator element can\r
- accept 4 properties: name, classname, method, methodparams, msg, depends,\r
- and jsFunctionName.\r
--->\r
-<!ELEMENT validator (javascript?)>\r
-<!ATTLIST validator name CDATA #REQUIRED\r
- classname CDATA #REQUIRED\r
- method CDATA #REQUIRED\r
- methodParams CDATA #REQUIRED\r
- msg CDATA #REQUIRED\r
- depends CDATA #IMPLIED\r
- jsFunctionName CDATA #IMPLIED >\r
-\r
-\r
-<!--\r
- DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED\r
- DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED \r
- The "javascript" element defines a JavaScript that can be used to perform\r
- client-side validators.\r
--->\r
-<!ELEMENT javascript (#PCDATA)>\r
-\r
-\r
-<!--\r
- DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED\r
- DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED \r
- The "constant" element defines a static value that can be used as\r
- replacement parameters within "field" elements. The "constant-name" and\r
- "constant-value" elements define the constant's reference id and replacement\r
- value.\r
--->\r
-<!ELEMENT constant (constant-name, constant-value)>\r
-<!ELEMENT constant-name (#PCDATA)>\r
-<!ELEMENT constant-value (#PCDATA)>\r
-\r
-\r
-<!--\r
- DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED\r
- DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED \r
- The "formset" element defines a set of forms for a locale. Formsets for\r
- specific locales can override only those fields that change. The\r
- localization is properly scoped, so that a formset can override just the\r
- language, or just the country, or both.\r
--->\r
-<!ELEMENT formset (constant*, form+)>\r
-<!ATTLIST formset language CDATA #IMPLIED\r
- country CDATA #IMPLIED >\r
-\r
-\r
-<!--\r
- DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED\r
- DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED \r
- The "form" element defines a set of fields to be validated. The name\r
- corresponds to the identifer the application assigns to the form. In the\r
- case of the Struts framework, this is the attribute property from\r
- the ActionMapping. Struts also offers the alternative of using the\r
- the path property as the Validator form name.\r
--->\r
-<!ELEMENT form (field+ )>\r
-<!ATTLIST form name CDATA #REQUIRED>\r
-\r
-\r
-<!--\r
- DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED\r
- DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED \r
- The "field" element defines the properties to be validated. In a\r
- web application, a field would also correspond to a control on\r
- a HTML form. To validate the properties, the validator works through\r
- a JavaBean representation, like a Struts ActionForm. The field element\r
- can accept up to 4 attributes:\r
-\r
- property The property on the JavaBean corresponding to this\r
- field element.\r
-\r
- depends The comma-delimited list of validators to apply against\r
- this field. For the field to succeed, all the\r
- validators must succeed.\r
-\r
- page The JavaBean corresponding to this form may include\r
- a page property. Only fields with a "page" attribute\r
- value that is equal to or less than the page property\r
- on the form JavaBean are processed. This is useful when\r
- using a "wizard" approach to completing a large form,\r
- to ensure that a page is not skipped.\r
- [0]\r
-\r
- indexedListProperty\r
- The "indexedListProperty" is the method name that will\r
- return an array or a Collection used to retrieve the\r
- list and then loop through the list performing the\r
- validations for this field.\r
-\r
- fieldOrder [:FIXME: is this still supported?]\r
--->\r
-<!ELEMENT field (msg|arg0|arg1|arg2|arg3|var)*>\r
-<!ATTLIST field property CDATA #REQUIRED\r
- depends CDATA #IMPLIED\r
- page CDATA #IMPLIED\r
- indexedListProperty CDATA #IMPLIED >\r
-\r
-\r
-<!--\r
- DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED\r
- DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED \r
- The "msg" element defines a custom message key to use when one of the\r
- validators for this field fails. Each validator has a default message\r
- property that is used when a corresonding field msg is not specified.\r
- Each validator applied to a field may have its own msg element.\r
- The msg element accepts up to three attributes.\r
-\r
- name The name of the validator corresponding to this msg.\r
-\r
- key The key that will return the message template from a\r
- resource bundle.\r
-\r
- resource If set to "false", the key is taken to be a literal\r
- value rather than a bundle key.\r
- [true]\r
--->\r
-<!ELEMENT msg EMPTY>\r
-<!ATTLIST msg name CDATA #IMPLIED\r
- key CDATA #IMPLIED\r
- resource CDATA #IMPLIED >\r
-\r
-\r
-<!--\r
- DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED\r
- DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED \r
- The "arg0" element defines the first replacement value to use with the\r
- message template for this validator or this field.\r
- The arg0 element accepts up to three attributes.\r
-\r
- name The name of the validator corresponding to this msg.\r
-\r
- key The key that will return the message template from a\r
- resource bundle.\r
-\r
- resource If set to "false", the key is taken to be a literal\r
- value rather than a bundle key.\r
- [true]\r
--->\r
-<!ELEMENT arg0 EMPTY>\r
-<!ATTLIST arg0 name CDATA #IMPLIED\r
- key CDATA #IMPLIED\r
- resource CDATA #IMPLIED >\r
-\r
-\r
-<!--\r
- DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED\r
- DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED \r
- The "arg1" element defines the second replacement value to use with the\r
- message template for this validator or this field.\r
- The arg1 element accepts up to three attributes.\r
-\r
- name The name of the validator corresponding to this msg.\r
-\r
- key The key that will return the message template from a\r
- resource bundle.\r
-\r
- resource If set to "false", the key is taken to be a literal\r
- value rather than a bundle key.\r
- [true]\r
--->\r
-<!ELEMENT arg1 EMPTY>\r
-<!ATTLIST arg1 name CDATA #IMPLIED\r
- key CDATA #IMPLIED\r
- resource CDATA #IMPLIED >\r
-\r
-\r
-<!--\r
- DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED\r
- DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED \r
- The "arg2" element defines the third replacement value to use with the\r
- message template for this validator or this field.\r
- The arg2 element accepts up to three attributes.\r
-\r
- name The name of the validator corresponding to this msg.\r
-\r
- key The key that will return the message template from a\r
- resource bundle.\r
-\r
- resource If set to "false", the key is taken to be a literal\r
- value rather than a bundle key.\r
- [true]\r
--->\r
-<!ELEMENT arg2 EMPTY>\r
-<!ATTLIST arg2 name CDATA #IMPLIED\r
- key CDATA #IMPLIED\r
- resource CDATA #IMPLIED >\r
-\r
-<!--\r
- DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED\r
- DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED \r
- The "arg3" element defines the fourth replacement value to use with the\r
- message template for this validator or this field.\r
- The arg0 element accepts up to three attributes.\r
-\r
- name The name of the validator corresponding to this msg.\r
-\r
- key The key that will return the message template from a\r
- resource bundle.\r
-\r
- resource If set to "false", the key is taken to be a literal\r
- value rather than a bundle key.\r
- [true]\r
--->\r
-<!ELEMENT arg3 EMPTY>\r
-<!ATTLIST arg3 name CDATA #IMPLIED\r
- key CDATA #IMPLIED\r
- resource CDATA #IMPLIED >\r
-\r
-\r
-<!--\r
- DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED\r
- DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED \r
- The "var" element can set parameters that a field may need to pass to\r
- one of its validators, such as the minimum and maximum values in a\r
- range validation. These parameters may also be referenced by one of the\r
- arg? elements using a shell syntax: ${var:var-name}.\r
--->\r
-<!ELEMENT var (var-name, var-value)>\r
-\r
-\r
-\r
-<!--\r
- DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED\r
- DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED \r
- The name of the var parameter to provide to a field's validators.\r
--->\r
-<!ELEMENT var-name (#PCDATA)>\r
-\r
-\r
-\r
-<!--\r
- DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED\r
- DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED ** DEPRECATED \r
- The value of the var parameter to provide to a field's validators.\r
--->\r
-<!ELEMENT var-value (#PCDATA)>\r
-\r
-<!-- eof -->\r