| ID | Chapter | Section | Description | Required | Dependency | Implementation Specific | Defined by | Status | Testable | 
| JSF:SPEC:1 | 2 | 2.1 | The JSF implementation must perform the following tasks during
        the Restore View phase of the request processing lifecycle: | true | 
 | false | technology | active | true | 
| JSF:SPEC:1.1 | 2 | 2.1 | Examine the FacesContext instance for the current
                request. If it already contains a UIViewRoot: | true | 
 | false | technology | active | true | 
| JSF:SPEC:1.1.1 | 2 | 2.1 | Set the locale on the UIViewRoot to the value
                        returned by getRequestLocale() method on the
                        ExternalContext for this request | true | 
 | false | technology | active | true | 
| JSF:SPEC:1.1.2 | 2 | 2.1 | For each component in the component tree,
                        determine if a ValueExpression for binding is
                        present. If so, call the setValue() method on
                        this ValueExpression, passing the component
                        instance on which it was found. | true | 
 | false | technology | active | true | 
| JSF:SPEC:1.1.3 | 2 | 2.1 | Take no further action during this phase, and
                        return. | true | 
 | false | technology | active | true | 
| JSF:SPEC:1.2 | 2 | 2.1 | Derive the view identifier that corresponds to this
                request, as follows: | true | 
 | false | technology | active | true | 
| JSF:SPEC:1.2.1 | 2 | 2.1 | If prefix mapping (such as /faces/*) is
                        used for FacesServlet, the viewId is set from
                        the extra path information of the request
                        URI. | true | 
 | false | technology | active | true | 
| JSF:SPEC:1.2.2 | 2 | 2.1 | If suffix mapping (such as *.faces) is used for
                        FacesServlet, the viewId is set from the servlet
                        path information of the request URI, after
                        replacing the suffix with the value of the
                        context initialization parameter named by the
                        symbolic constant
                        ViewHandler.DEFAULT_SUFFIX_PARAM_NAME (if no
                        such context initialization parameter is
                        present, use the value of the symbolic constant
                        ViewHandler.DEFAULT_SUFIX as the replacement
                        suffix). | true | 
 | false | technology | active | true | 
| JSF:SPEC:1.2.3 | 2 | 2.1 | If no view identifier can be derived, throw an
                        exception. | true | 
 | false | technology | active | true | 
| JSF:SPEC:1.3 | 2 | 2.1 | Determine if this request is a postback or initial
                request by executing the following algorithm. Find the
                render-kit-id for the current request by calling
                calculateRenderKitId() on the Application's ViewHandler.
                Get the RenderKit's ResponseStateManager and call its
                isPostback() method, passin gthe current FacesContext | true | 
 | false | technology | active | true | 
| JSF:SPEC:1.4 | 2 | 2.1 | A request that is a non-postback request must call
                FacesContext.renderResponse() to cause intervening
                phases to be skipped. | true | 
 | false | technology | active | true | 
| JSF:SPEC:1.5 | 2 | 2.1 | If the request is a postback, call
                ViewHandler.restoreView() passing the FacesCOntext
                isntance for the current request and the derived view
                identifier, and returning a UIViewRoot for the restored
                view. If the return from ViewHandler.restoreView() is
                null, throw a FacesException with an appropriate error
                message. | true | 
 | false | technology | active | true | 
| JSF:SPEC:1.5.1 | 2 | 2.1 | For each component in the component tree,
                        determine if a ValueExpression for binding is
                        present. If so, call the setValeu() method on
                        this ValueExpression, passing the component
                        instance on which it was found. Do this in a
                        parent-first fashion, calling setValue() method
                        and then traversing the children. | true | 
 | false | technology | active | true | 
| JSF:SPEC:1.6 | 2 | 2.1 | If the request is a non-postback, call
                ViewHandler.createView(), passing the FacesContext
                instance for the current request and the derived view
                identifier. | true | 
 | false | technology | active | true | 
| JSF:SPEC:1.7 | 2 | 2.1 | Store the restored or created UIViewRoot in the
                FacesContext | true | 
 | false | technology | active | true | 
| JSF:SPEC:2 | 2 | 2.2 | During the Apply Request Values phase, the JSF implementation
        must call the processDecodes() method of the UIViewRoot of the
        component tree. | true | 
 | false | technology | active | true | 
| JSF:SPEC:3 | 2 | 2.2 | During the decoding of request values, some components perform
        special processing: | true | 
 | false | technology | active | true | 
| JSF:SPEC:3.1 | 2 | 2.2 | Components that implement ActionSource, which recognize
                that they were activated, will queue an ActionEvent. | true | 
 | false | technology | active | true | 
| JSF:SPEC:3.1.1 | 2 | 2.2 | The event will be delivered at the end of Apply
                        Request Values phase if the immediate property
                        is true | true | 
 | false | technology | active | true | 
| JSF:SPEC:3.1.2 | 2 | 2.2 | The event will be delivered at the end of Invoke
                        Application phase if the immediate property is
                        false | true | 
 | false | technology | active | true | 
| JSF:SPEC:3.2 | 2 | 2.2 | Components that implement EditableValueHolder, and whose
                immediate property is set to true, will cause the
                conversion and validation processing that normally
                happens during Process Validations phase to occur during
                Apply Requst Values phase instead. | true | 
 | false | technology | active | true | 
| JSF:SPEC:4 | 2 | 2.2 | If any of the decode() methods that were invoked, or an event
        listener that processed a queued event, called
        responseComplete() on the FacesContext instance for the current
        request, clear the remaining events from the event queue and
        terminate the lifecycle processing of the current request. | true | 
 | false | technology | active | true | 
| JSF:SPEC:5 | 2 | 2.2 | If any of the decode() methods that were invoked, or an event
        listener that processed a queued event, called renderResponse()
        on the FacesContext instance for the current request, clear the
        remaining events from the event queue and terminate the
        lifecycle processing of the current request. | true | 
 | false | technology | active | true | 
| JSF:SPEC:6 | 2 | 2.2 | If any of the decode() methods that were invoked, or an event
        listener that processed a queued event, did not call
        responseComplete() or renderResponse() on the FacesContext
        instance for the current request, the implementation must
        proceed to the Process Validations phase. | true | 
 | false | technology | active | true | 
| JSF:SPEC:7 | 2 | 2.3 | During the Process Validations phase of the request processing
        lifecycle, the JSF implementation must call the
        processValidators() method of the UIViewRoot of the tree. | true | 
 | false | technology | active | true | 
| JSF:SPEC:8 | 2 | 2.3 | If any of the validate() methods that were invoked, or an event 
        listener that processed a queued event, called renderResponse() 
        on the FacesContext instance for the current request, clear the
        remaining events from the event queue and transfer control to
        the Render Response phase of the request processing lifecycle.
        Otherwise, control must proceed to the Update Model Values 
        phase. | true | 
 | false | technology | active | true | 
| JSF:SPEC:9 | 2 | 2.4 | During the Update Model Values phase, the JSF implementation
        must call the processUpdates() method of the UIViewRoot
        component of the tree. | true | 
 | false | technology | active | true | 
| JSF:SPEC:10 | 2 | 2.4 | If any of the updateModel() methods that was invoked, 
        or an event listener that processed a queued event, called 
        renderResponse() on the FacesContext instance for the current 
        request, clear the remaining events from the event queue and 
        transfer control to the Render Response phase of the request 
        processing lifecycle. Otherwise, control must proceed to the
        Invoke Application phase. | true | 
 | false | technology | active | true | 
| JSF:SPEC:11 | 2 | 2.5 | The implementation must ensure that the processApplication() 
        method of the UIViewRoot instance is called. | true | 
 | false | technology | active | true | 
| JSF:SPEC:11.1 | 2 | 2.5 | The default behavior of this method will be to broadcast
                any queued events that specify a phase identifier of
                PhaseId.INVOKE_APPLICATION. | true | 
 | false | technology | active | true | 
| JSF:SPEC:12 | 2 | 2.6 | During the Render Response phase All JSF implementations
        must conform to the following requirements. | true | 
 | false | technology | active | true | 
| JSF:SPEC:12.1 | 2 | 2.6 | JSF implementations must provide a default ViewHandler
                implementation that performs a 
                RequestDispatcher.forward() call to a web application
                resource whose context-relative path is equal to the
                view identifier of the component tree | true | 
 | false | technology | active | true | 
| JSF:SPEC:12.2 | 2 | 2.6 | During the rendering process, additional components may 
                be added to the component tree based on information 
                available to the ViewHandler implementation. However, 
                before adding a new component, the ViewHandler 
                implementation must first check for the existence of the
                corresponding component in the component tree. If the
                component already exists (perhaps because a previous
                phase has pre-created one or more components), the 
                existing component’s properties and attributes must be 
                utilized. | true | 
 | false | technology | active | true | 
| JSF:SPEC:12.3 | 2 | 2.6 | Under no circumstances should a component be selected 
                for rendering when its parent component, or any of its 
                ancestors in the component tree, has its rendersChildren
                property set to true. In such cases, the parent or 
                ancestor component must render the content of this child
                component when the parent or ancestor was selected. | true | 
 | false | technology | active | true | 
| JSF:SPEC:13 | 2 | 3 | For each queued event, the broadcast() method of the source
        UIComponent must be called to broadcast the event to all event
        listeners who have registered an interest, on this source
        component for events of the specified type, after which the
        event is removed from the event queue. | true | 
 | false | technology | active | true | 
| JSF:SPEC:14 | 2 | 3 | It is also possible for event listeners to cause additional
        events to be enqueued for processing during the current phase
        of the request processing lifecycle. Such events must be
        broadcast in the order they were enqueued, after all originally
        queued events have been broadcast, before the lifecycle
        management method returns. | true | 
 | false | technology | active | true | 
| JSF:SPEC:15 | 2 | 4.2.1 | The UIViewRoot instance returned by the createView() method must
        minimally contain a single UIViewRoot provided by the JSF
        implementation, which must encapsulate any 
        implementation-specific component management that is required. | true | 
 | false | technology | active | true | 
| JSF:SPEC:16 | 2 | 4.2.1 | The caller of ViewHandler.createView() must cause the
        FacesContext to be populated with the new UIViewRoot. | true | 
 | false | technology | active | true | 
| JSF:SPEC:17 | 2 | 4.2.2 | The default ViewHandler must call calculateRenderKitId() on
        itself and set the result into the UIViewRoot’s renderKitId
        property. | true | 
 | false | technology | active | true | 
| JSF:SPEC:18 | 2 | 4.2.4 | Once the view has been created and configured, the FacesContext
        instance for this request must be made aware of it by calling
        setViewRoot(). | true | 
 | false | technology | active | true | 
| JSF:SPEC:19 | 2 | 5.2.1 | The create ViewHandler’s createView() method must cause the
        active Locale to be determined by looking at the user’s
        preferences combined with the application’s stated supported
        locales. | true | 
 | false | technology | active | true | 
| JSF:SPEC:20 | 2 | 5.2.2 | At the beginning of the render-response phase, the ViewHandler
        must ensure that the response Locale is set to be that of the
        UIViewRoot, for example by calling ServletResponse.setLocale()
        when running in the servlet environment. | true | 
 | false | technology | active | true | 
| JSF:SPEC:21 | 2 | 5.2.2 | At the end of the render-response phase, the ViewHandler must 
        store the response character encoding used by the underlying 
        response object (e.g., the servlet or portlet response) in the 
        session (if and only if a session already exists) under a well 
        known, implementation-dependent key | true | 
 | false | technology | active | true | 
| JSF:SPEC:21.1 | 2 | 5.2.2 | On a subsequent postback, before any of the 
                ExternalContext methods for accessing request
                parameters are invoked, the ViewHandler must examine the
                Content-Type header to read the charset attribute and
                use its value to set it as the request encoding for the
                underlying request object. If the Content-Type header
                doesn't contain a charset attribute, the encoding
                previously stored in the session (if and only if a
                session already exists), must be used to set the
                encoding for the underlying request object. | true | 
 | false | technology | active | true | 
| JSF:SPEC:21.2 | 2 | 5.2.2 | If no character encoding is found, the request encoding
                must be left unmodified. | true | 
 | false | technology | active | true | 
| JSF:SPEC:22 | 2 | 5.2.4 | A JSF implementation must provide a javax.faces.Messages
        ResourceBundle containing all of the necessary keys for the
        standard messages. | true | 
 | false | technology | active | true | 
| JSF:SPEC:22.1 | 2 | 5.2.4 | javax.faces.component.UIInput.CONVERSION -- 
                {0}: Conversion error occurred | true | 
 | false | technology | active | true | 
| JSF:SPEC:22.2 | 2 | 5.2.4 | javax.faces.component.UIInput.REQUIRED -- 
                {0}: Validation Error: Value is required | true | 
 | false | technology | active | true | 
| JSF:SPEC:22.3 | 2 | 5.2.4 | javax.faces.component.UIInput.UPDATE -- 
                {0}: An error occurred when processing your submitted 
                information | true | 
 | false | technology | active | true | 
| JSF:SPEC:22.4 | 2 | 5.2.4 | javax.faces.component.UISelectOne.INVALID -- 
                {0}: Validation Error: Value is not valid | true | 
 | false | technology | active | true | 
| JSF:SPEC:22.5 | 2 | 5.2.4 | javax.faces.component.UISelectMany.INVALID -- 
                {0}: Validation Error: Value is not valid | true | 
 | false | technology | active | true | 
| JSF:SPEC:22.6 | 2 | 5.2.4 | javax.faces.converter.BigDecimalConverter.DECIMAL={2}: 
                ''{0}'' must be a signed decimal number. | true | 
 | false | technology | active | true | 
| JSF:SPEC:22.7 | 2 | 5.2.4 | javax.faces.converter.BigDecimalConverter.DECIMAL_detail
                ={2}: ''{0}'' must be asigned decimal number consisting
                of zero or more digits, that may be followed by a
                decimal point and fraction. Example: {1} | true | 
 | false | technology | active | true | 
| JSF:SPEC:22.8 | 2 | 5.2.4 | javax.faces.converter.BigIntegerConverter.BIGINTEGER
                ={2}: ''{0}'' must be a number consisting of one or more
                digits. | true | 
 | false | technology | active | true | 
| JSF:SPEC:22.9 | 2 | 5.2.4 | javax.faces.converter.BigIntegerConverter.BIGINTEGER_
                detail={2}: ''{0}'' must be a number consisting of one
                or more digits. Example: {1} | true | 
 | false | technology | active | true | 
| JSF:SPEC:22.10 | 2 | 5.2.4 | javax.faces.converter.BooleanConverter.BOOLEAN={1}:
                ''{0}'' must be 'true' or 'false'. | true | 
 | false | technology | active | true | 
| JSF:SPEC:22.11 | 2 | 5.2.4 | javax.faces.converter.BooleanConverter.BOOLEAN_detail
                ={1}: ''{0}'' must be 'true' or 'false'. Any value other
                than 'true' will evaluate to 'false'. | true | 
 | false | technology | active | true | 
| JSF:SPEC:22.12 | 2 | 5.2.4 | javax.faces.converter.ByteConverter.BYTE={2}: ''{0}''
                must be a number between 0 and 255. | true | 
 | false | technology | active | true | 
| JSF:SPEC:22.13 | 2 | 5.2.4 | javax.faces.converter.ByteConverter.BYTE_detail={2}:
                ''{0}'' must be a number between 0 and 255. Example: {1} | true | 
 | false | technology | active | true | 
| JSF:SPEC:22.14 | 2 | 5.2.4 | javax.faces.converter.CharacterConverter.CHARACTER={1}:
                ''{0}'' must be a valid character. | true | 
 | false | technology | active | true | 
| JSF:SPEC:22.15 | 2 | 5.2.4 | javax.faces.converter.CharacterConverter.CHARACTER_
                detail={1}: ''{0}'' must be a valid ASCII character. | true | 
 | false | technology | active | true | 
| JSF:SPEC:22.16 | 2 | 5.2.4 | javax.faces.converter.DateTimeConverter.DATE={2}: 
                ''{0}'' could not be understood as a date. | true | 
 | false | technology | active | true | 
| JSF:SPEC:22.17 | 2 | 5.2.4 | javax.faces.converter.DateTimeConverter.DATE_detail={2}:
                ''{0}'' could not be understood as a date. Example: {1} | true | 
 | false | technology | active | true | 
| JSF:SPEC:22.18 | 2 | 5.2.4 | javax.faces.converter.DateTimeConverter.TIME={2}: 
                ''{0}'' could not be understood as a time. | true | 
 | false | technology | active | true | 
| JSF:SPEC:22.19 | 2 | 5.2.4 | javax.faces.converter.DateTimeConverter.TIME_detail={2}: 
                ''{0}'' could not be understood as a time. Example: {1} | true | 
 | false | technology | active | true | 
| JSF:SPEC:22.20 | 2 | 5.2.4 | javax.faces.converter.DateTimeConverter.DATETIME={2}: 
                ''{0}'' could not be understood as a date and time. | true | 
 | false | technology | active | true | 
| JSF:SPEC:22.21 | 2 | 5.2.4 | javax.faces.converter.DateTimeConverter.DATETIME_detail=
                {2}: ''{0}'' could not be understood as a date and time. 
                Example: {1} | true | 
 | false | technology | active | true | 
| JSF:SPEC:22.22 | 2 | 5.2.4 | javax.faces.converter.DateTimeConverter.PATTERN_TYPE=
                {1}: A 'pattern' or 'type' attribute must be specified 
                to convert the value ''{0}''. | true | 
 | false | technology | active | true | 
| JSF:SPEC:22.23 | 2 | 5.2.4 | javax.faces.converter.DoubleConverter.DOUBLE={2}: 
                ''{0}'' must be a number consisting of one or more
                digits. | true | 
 | false | technology | active | true | 
| JSF:SPEC:22.24 | 2 | 5.2.4 | javax.faces.converter.DoubleConverter.DOUBLE_detail={2}:
                ''{0}'' must be a number between 4.9E-324 and
                1.7976931348623157E308 Example: {1} | true | 
 | false | technology | active | true | 
| JSF:SPEC:22.25 | 2 | 5.2.4 | javax.faces.converter.EnumConverter.ENUM={2}: ''{0}'' 
                must be convertible to an enum. | true | 
 | false | technology | active | true | 
| JSF:SPEC:22.26 | 2 | 5.2.4 | javax.faces.converter.EnumConverter.ENUM_detail={2}: 
                ''{0}'' must be convertible to an enum from the enum 
                that contains the constant ''{1}''. | true | 
 | false | technology | active | true | 
| JSF:SPEC:22.27 | 2 | 5.2.4 | javax.faces.converter.EnumConverter.ENUM_NO_CLASS={1}:
                ''{0}'' must be convertible to an enum from the enum, 
                but no enum class provided. | true | 
 | false | technology | active | true | 
| JSF:SPEC:22.28 | 2 | 5.2.4 | javax.faces.converter.EnumConverter.ENUM_NO_CLASS_detail
                ={1}: ''{0}'' must be convertible to an enum from the 
                enum, but no enum class provided. | true | 
 | false | technology | active | true | 
| JSF:SPEC:22.29 | 2 | 5.2.4 | javax.faces.converter.FloatConverter.FLOAT={2}: ''{0}'' 
                must be a number consisting of one or more digits. | true | 
 | false | technology | active | true | 
| JSF:SPEC:22.30 | 2 | 5.2.4 | javax.faces.converter.FloatConverter.FLOAT_detail={2}:
                ''{0}'' must be a number between 1.4E-45 and 
                3.4028235E38 Example: {1} | true | 
 | false | technology | active | true | 
| JSF:SPEC:22.31 | 2 | 5.2.4 | javax.faces.converter.IntegerConverter.INTEGER={2}:
                ''{0}'' must be a number consisting of one or more
                digits. | true | 
 | false | technology | active | true | 
| JSF:SPEC:22.32 | 2 | 5.2.4 | javax.faces.converter.IntegerConverter.INTEGER_detail=
                {2}: ''{0}'' must be a number between -2147483648
                and 2147483647 Example: {1} | true | 
 | false | technology | active | true | 
| JSF:SPEC:22.33 | 2 | 5.2.4 | javax.faces.converter.LongConverter.LONG={2}: ''{0}'' 
                must be a number consisting of one or more digits. | true | 
 | false | technology | active | true | 
| JSF:SPEC:22.34 | 2 | 5.2.4 | javax.faces.converter.LongConverter.LONG_detail={2}: 
                ''{0}'' must be a number between -9223372036854775808 
                to 9223372036854775807 Example: {1} | true | 
 | false | technology | active | true | 
| JSF:SPEC:22.35 | 2 | 5.2.4 | javax.faces.converter.NumberConverter.CURRENCY={2}: 
                ''{0}'' could not be understood as a currency value. | true | 
 | false | technology | active | true | 
| JSF:SPEC:22.36 | 2 | 5.2.4 | javax.faces.converter.NumberConverter.CURRENCY_detail=
                {2}: ''{0}'' could not be understood as a currency value. 
                Example: {1} | true | 
 | false | technology | active | true | 
| JSF:SPEC:22.37 | 2 | 5.2.4 | javax.faces.converter.NumberConverter.PERCENT={2}: 
                ''{0}'' could not be understood as a percentage. | true | 
 | false | technology | active | true | 
| JSF:SPEC:22.38 | 2 | 5.2.4 | javax.faces.converter.NumberConverter.PERCENT_detail=
                {2}: ''{0}'' could not be understood as a percentage. 
                Example: {1} | true | 
 | false | technology | active | true | 
| JSF:SPEC:22.39 | 2 | 5.2.4 | javax.faces.converter.NumberConverter.NUMBER={2}: 
                ''{0}'' is not a number. | true | 
 | false | technology | active | true | 
| JSF:SPEC:22.40 | 2 | 5.2.4 | javax.faces.converter.NumberConverter.NUMBER_detail={2}:
                ''{0}'' is not a number. Example: {1} | true | 
 | false | technology | active | true | 
| JSF:SPEC:22.41 | 2 | 5.2.4 | javax.faces.converter.NumberConverter.PATTERN={2}: 
                ''{0}'' is not a number pattern. | true | 
 | false | technology | active | true | 
| JSF:SPEC:22.42 | 2 | 5.2.4 | javax.faces.converter.NumberConverter.PATTERN_detail=
                {2}: ''{0}'' is not a number pattern. Example: {1} | true | 
 | false | technology | active | true | 
| JSF:SPEC:22.43 | 2 | 5.2.4 | javax.faces.converter.ShortConverter.SHORT={2}: ''{0}'' 
                must be a number consisting of one or more digits. | true | 
 | false | technology | active | true | 
| JSF:SPEC:22.44 | 2 | 5.2.4 | javax.faces.converter.ShortConverter.SHORT_detail={2}: 
                ''{0}'' must be a number between -32768 and 32767 
                Example: {1} | true | 
 | false | technology | active | true | 
| JSF:SPEC:22.45 | 2 | 5.2.4 | javax.faces.converter.STRING={1}: Could not convert 
                ''{0}'' to a string. | true | 
 | false | technology | active | true | 
| JSF:SPEC:22.46 | 2 | 5.2.4 | javax.faces.validator.DoubleRangeValidator.MAXIMUM -- 
                {1}: Validation Error: Value is greater than allowable 
                maximum of ‘’{0}’’ | true | 
 | false | technology | active | true | 
| JSF:SPEC:22.47 | 2 | 5.2.4 | javax.faces.validator.DoubleRangeValidator.MINIMUM -- 
                {1}: Validation Error: Value is less than allowable 
                minimum of ‘’{0}’’ | true | 
 | false | technology | active | true | 
| JSF:SPEC:22.48 | 2 | 5.2.4 | javax.faces.validator.DoubleRangeValidator.NOT_IN_RANGE 
                -- {2}: Validation Error: Specified attribute is not 
                between the expected values of {0} and {1}. | true | 
 | false | technology | active | true | 
| JSF:SPEC:22.49 | 2 | 5.2.4 | javax.faces.validator.DoubleRangeValidator.TYPE -- {0}: 
                Validation Error: Value is not of the correct type | true | 
 | false | technology | active | true | 
| JSF:SPEC:22.50 | 2 | 5.2.4 | javax.faces.validator.LengthValidator.MAXIMUM -- {1}: 
                Validation Error: Value is greater than allowable 
                maximum of ‘’{0}’’ | true | 
 | false | technology | active | true | 
| JSF:SPEC:22.51 | 2 | 5.2.4 | javax.faces.validator.LengthValidator.MINIMUM -- {1}: 
                Validation Error: Value is less than allowable minimum
                of ‘’{0}’’ | true | 
 | false | technology | active | true | 
| JSF:SPEC:22.52 | 2 | 5.2.4 | javax.faces.validator.LongRangeValidator.MAXIMUM -- 
                {1}: Validation Error: Value is greater than allowable
                maximum of ‘’{0}’’ | true | 
 | false | technology | active | true | 
| JSF:SPEC:22.53 | 2 | 5.2.4 | javax.faces.validator.LongRangeValidator.MINIMUM -- {1}:
                Validation Error Value is less than allowable minimum of
                ‘’{0}’’ | true | 
 | false | technology | active | true | 
| JSF:SPEC:22.54 | 2 | 5.2.4 | javax.faces.validator.LongRangeValidator.NOT_IN_RANGE=
                {2}: Validation Error: Specified attribute is not
                between the expected values of {0} and {1}. | true | 
 | false | technology | active | true | 
| JSF:SPEC:22.55 | 2 | 5.2.4 | javax.faces.validator.LongRangeValidator.TYPE -- {0}:
                Validation Error: Value is not of the correct type | true | 
 | false | technology | active | true | 
| JSF:SPEC:23 | 2 | 5.2.4 | These ResourceBundle keys must be used to look up the necessary
        values to create a localized FacesMessage instance. Note that
        the value of the summary and detail keys in the ResourceBundle
        may contain parameter substitution tokens, which must be
        substituted with the appropriate values using 
        java.text.MessageFormat. | true | 
 | false | technology | active | true | 
| JSF:SPEC:24 | 2 | 5.2.4 | The following algorithm must be used to create a FacesMessage
        instance given a message key. | true | 
 | false | technology | active | true | 
| JSF:SPEC:24.1 | 2 | 5.2.4 | Call getMessageBundle() on the Application instance for 
                this web application, to determine if the application 
                has defined a resource bundle name. If so, load that
                ResourceBundle and look for the message there. | true | 
 | false | technology | active | true | 
| JSF:SPEC:24.2 | 2 | 5.2.4 | If not there, look in the javax.faces.Messages 
                resource bundle. | true | 
 | false | technology | active | true | 
| JSF:SPEC:25 | 2 | 5.3.1 | A custom component that extends UIComponent directly, and does
        not extend any of the standard components must implement 
        StateHolder manually. | true | 
 | false | technology | active | true | 
| JSF:SPEC:26 | 2 | 5.3.1 | A custom component that does extend from one of the standard 
        components and maintains its own state, in addition to the state
        maintained by the superclass must take special care to implement
        StateHolder correctly. Notably, calls to saveState() must not 
        alter the state in any way. | true | 
 | false | technology | active | true | 
| JSF:SPEC:27 | 3 | 1.1 | Every User Interface component may be named by a component 
        identifier, which (if utilized) must be unique among the 
        components that share a common naming container parent in a 
        component tree. | true | 
 | false | technology | active | true | 
| JSF:SPEC:28 | 3 | 1.1 | Component identifiers must conform to the following rules: | true | 
 | false | technology | active | false | 
| JSF:SPEC:28.1 | 3 | 1.1 | They must start with a letter (as defined by the 
                Character.isLetter() method). | true | 
 | false | technology | active | true | 
| JSF:SPEC:28.2 | 3 | 1.1 | Subsequent characters may be letters (as defined by the 
                Character.isLetter() method), digits as defined by the 
                Character.isDigit() method, dashes (‘-’), and 
                underscores (‘_’). | true | 
 | false | technology | active | true | 
| JSF:SPEC:29 | 3 | 1.4 | The implementation of setValueExpression must detemine if the 
        expression is a literal by calling 
        ValueExpression.isLiteralText() on the expression argument. | true | 
 | false | technology | active | true | 
| JSF:SPEC:29.1 | 3 | 1.4 | If the expression argument is literal text, then 
                ValueExpression.getValue() must be called on the 
                expression argument. | true | 
 | false | technology | active | true | 
| JSF:SPEC:29.2 | 3 | 1.4 | The result must be used as the value argument, along 
                with the name argument to this component
                getAttributes().put(name,value) method call. | true | 
 | false | technology | active | true | 
| JSF:SPEC:30 | 3 | 1.4 | For the standard component classes defined by this 
        specification, all attributes, and all properties other than id
        and parent, are value expression enabled. | true | 
 | false | technology | active | true | 
| JSF:SPEC:31 | 3 | 1.5 | The specified ValueExpression must point to a read-write 
        JavaBeans property of type UIComponent(or appropriate subclass).
        Such a component binding is used at two different times 
        during the processing of a Faces Request: | true | 
 | false | technology | active | true | 
| JSF:SPEC:31.1 | 3 | 1.5 | When a component instance is first created (typically by 
                virtue of being referenced by a UIComponentELTag in a 
                JSP page), the JSF implementation will retrieve the
                ValueExpression for the name binding, and call 
                getValue() on it. | true | 
 | false | technology | active | true | 
| JSF:SPEC:31.1.1 | 3 | 1.5 | If this call returns a non-null UIComponent 
                        value (because the JavaBean programmatically 
                        instantiated and configured a component 
                        already), that instance will be added to the 
                        component tree that is being created. | true | 
 | false | technology | active | true | 
| JSF:SPEC:31.1.2 | 3 | 1.5 | If the call returns null, a new component
                        instance will be created, added to the component 
                        tree, and setValue() will be called on the 
                        ValueBinding (which will cause the property on 
                        the JavaBean to be set to the newly created 
                        component instance). | true | 
 | false | technology | active | true | 
| JSF:SPEC:31.2 | 3 | 1.5 | When a component tree is recreated during the Restore 
                View phase of the request processing lifecycle, for each 
                component that has a ValueExpression associated with the
                name “binding”, setValue() will be called on it, passing
                the recreated component instance. | true | 
 | false | technology | active | true | 
| JSF:SPEC:32 | 3 | 1.7 | The UIComponent.getChildren() method returns a mutable List.
        The returned List implementation must support all of the 
        required and optional methods of the List interface, as well as
        update the parent property of children that are added and 
        removed, as described in the Javadocs for this method. | true | 
 | false | technology | active | true | 
| JSF:SPEC:33 | 3 | 1.7 | If there are no children, the getChildCount() method must 
        return 0. | true | 
 | false | technology | active | true | 
| JSF:SPEC:34 | 3 | 1.7 | The getChildCount() must not cause the creation of a child 
        component list, so it is preferred over calling 
        getChildren().size() when there are no children. | true | 
 | false | technology | active | true | 
| JSF:SPEC:35 | 3 | 1.10 | The Map returned by getAttributes() must also support 
        attribute-property transparency, which operates as follows: | true | 
 | false | technology | active | true | 
| JSF:SPEC:35.1 | 3 | 1.10 | When the get() method is called, if the specified 
                attribute name matches the name of a readable JavaBeans 
                property on the component implementation class, the 
                value returned will be acquired by calling the 
                appropriate property getter method, and wrapping Java
                primitive values (such as int) in their corresponding 
                wrapper classes (such as java.lang.Integer) if
                necessary. If the specified attribute name does not 
                match the name of a readable JavaBeans property on the 
                component implementation class, consult the internal 
                data-structure to in which generic attributes are 
                stored. If no entry exists in the internal 
                data-structure, see if there is a ValueExpression for 
                this attribute name by calling getValueExpression(), 
                passing the attribute name as the key. If a 
                ValueExpression exists, call getValue() on it, returning
                the result. If an ELException is thrown wrap it in a 
                FacesException and re-throw it. | true | 
 | false | technology | active | true | 
| JSF:SPEC:35.2 | 3 | 1.10 | When the put() method is called, if the specified 
                attribute name matches the name of a writable JavaBeans
                property on the component implementation class, the 
                appropriate property setter method will be called. If
                the specified attribute name does not match the name of
                a writable JavaBeans property, simply put the value in
                the data-structure for generic attributes. | true | 
 | false | technology | active | true | 
| JSF:SPEC:35.3 | 3 | 1.10 | When the remove() method is called, if the specified 
                attribute name matches the name of a JavaBeans property 
                on the component, an IllegalArgumentException must be
                thrown. | true | 
 | false | technology | active | true | 
| JSF:SPEC:35.4 | 3 | 1.10 | When the containsKey() method is called, if the 
                specified attribute name matches the name of a JavaBeans
                property, return false. Otherwise, return true if and 
                only if the specified attribute name exists in the 
                internal data-structure for the generic attributes. | true | 
 | false | technology | active | true | 
| JSF:SPEC:36 | 3 | 1.10 | The following converter id values must be registered to create
        instances of the specified Converter implementation classes: | true | 
 | false | technology | active | true | 
| JSF:SPEC:36.1 | 3 | 3.3 | javax.faces.BigDecimal -- An instance of
                javax.faces.convert.BigDecimalConverter (or a subclass 
                of this class). | true | 
 | false | technology | active | true | 
| JSF:SPEC:36.2 | 3 | 3.3 | javax.faces.BigInteger -- An instance of
                javax.faces.convert.BigIntegerConverter (or a subclass 
                of this class). | true | 
 | false | technology | active | true | 
| JSF:SPEC:36.3 | 3 | 3.3 | javax.faces.Boolean -- An instance of
                javax.faces.convert.BooleanConverter (or a subclass 
                of this class). | true | 
 | false | technology | active | true | 
| JSF:SPEC:36.4 | 3 | 3.3 | javax.faces.Byte -- An instance of 
                javax.faces.convert.ByteConverter (or a subclass of 
                this class). | true | 
 | false | technology | active | true | 
| JSF:SPEC:36.5 | 3 | 3.3 | javax.faces.Character -- An instance of
                javax.faces.convert.CharacterConverter (or a subclass of
                this class). | true | 
 | false | technology | active | true | 
| JSF:SPEC:36.6 | 3 | 3.3 | javax.faces.DateTime -- An instance of
                javax.faces.convert.DateTimeConverter (or a subclass of 
                this class). | true | 
 | false | technology | active | true | 
| JSF:SPEC:36.7 | 3 | 3.3 | javax.faces.Double -- An instance of
                javax.faces.convert.DoubleConverter (or a subclass of
                this class). | true | 
 | false | technology | active | true | 
| JSF:SPEC:36.8 | 3 | 3.3 | javax.faces.Float -- An instance of
                javax.faces.convert.FloatConverter (or a subclass of 
                this class). | true | 
 | false | technology | active | true | 
| JSF:SPEC:36.9 | 3 | 3.3 | javax.faces.Integer -- An instance of
                javax.faces.convert.IntegerConverter (or a subclass of 
                this class). | true | 
 | false | technology | active | true | 
| JSF:SPEC:36.10 | 3 | 3.3 | javax.faces.Long -- An instance of 
                javax.faces.convert.LongConverter (or a subclass of this
                class). | true | 
 | false | technology | active | true | 
| JSF:SPEC:36.11 | 3 | 3.3 | javax.faces.Number -- An instance of
                javax.faces.convert.NumberConverter (or a subclass of 
                this class). | true | 
 | false | technology | active | true | 
| JSF:SPEC:36.12 | 3 | 3.3 | javax.faces.Short -- An instance of
                javax.faces.convert.ShortConverter (or a subclass of 
                this class). | true | 
 | false | technology | active | true | 
| JSF:SPEC:37 | 3 | 3.3 | A JSF implementation must register converters for all of the
        following classes using the by-type registration mechanism: | true | 
 | false | technology | active | true | 
| JSF:SPEC:37.1 | 3 | 3.3 | java.math.BigDecimal, and java.math.BigDecimal.TYPE --
                An instance of javax.faces.convert.BigDecimalConverter 
                (or a subclass of this class). | true | 
 | false | technology | active | true | 
| JSF:SPEC:37.2 | 3 | 3.3 | java.math.BigInteger, and java.math.BigInteger.TYPE -- 
                An instance of javax.faces.convert.BigIntegerConverter 
                (or a subclass of this class). | true | 
 | false | technology | active | true | 
| JSF:SPEC:37.3 | 3 | 3.3 | java.lang.Boolean, and java.lang.Boolean.TYPE -- An 
                instance of javax.faces.convert.BooleanConverter 
                (or a subclass of this class). | true | 
 | false | technology | active | true | 
| JSF:SPEC:37.4 | 3 | 3.3 | java.lang.Byte, and java.lang.Byte.TYPE -- An instance 
                of javax.faces.convert.ByteConverter (or a subclass of
                this class). | true | 
 | false | technology | active | true | 
| JSF:SPEC:37.5 | 3 | 3.3 | java.lang.Character, and java.lang.Character.TYPE -- An 
                instance of javax.faces.convert.CharacterConverter 
                (or a subclass of this class). | true | 
 | false | technology | active | true | 
| JSF:SPEC:37.6 | 3 | 3.3 | java.lang.Double, and java.lang.Double.TYPE -- An 
                instance of javax.faces.convert.DoubleConverter (or a 
                subclass of this class). | true | 
 | false | technology | active | true | 
| JSF:SPEC:37.7 | 3 | 3.3 | java.lang.Float, and java.lang.Float.TYPE -- An instance
                of javax.faces.convert.FloatConverter (or a subclass of 
                this class). | true | 
 | false | technology | active | true | 
| JSF:SPEC:37.8 | 3 | 3.3 | java.lang.Integer, and java.lang.Integer.TYPE -- An 
                instance of javax.faces.convert.IntegerConverter (or a 
                subclass of this class). | true | 
 | false | technology | active | true | 
| JSF:SPEC:37.9 | 3 | 3.3 | java.lang.Long, and java.lang.Long.TYPE -- An instance 
                of javax.faces.convert.LongConverter (or a subclass of 
                this class). | true | 
 | false | technology | active | true | 
| JSF:SPEC:37.10 | 3 | 3.3 | java.lang.Short, and java.lang.Short.TYPE -- An instance
                of javax.faces.convert.ShortConverter (or a subclass of
                this class). | true | 
 | false | technology | active | true | 
| JSF:SPEC:37.11 | 3 | 3.3 | java.lang.Enum, and java.lang.Enum.TYPE -- An instance 
                of javax.faces.convert.EnumConverter (or a subclass of
                this class). | true | 
 | false | technology | active | true | 
| JSF:SPEC:38 | 3 | 3.3 | A compliant implementation must allow the registration of a 
        converter for class java.lang.String and java.lang.String.TYPE 
        that will be used to convert values for these types. | true | 
 | false | technology | active | true | 
| JSF:SPEC:39 | 3 | 4.5 | A concrete UIComponent subclass that emits events of a 
        particular type must include public methods to register and 
        deregister a listener implementation. | true | 
 | false | technology | active | true | 
| JSF:SPEC:40 | 3 | 5.5 | The following standard Validator implementations (in the
        javax.faces.validator package) are provided: | true | 
 | false | technology | active | true | 
| JSF:SPEC:40.1 | 3 | 4.5 | DoubleRangeValidator—Checks the local value of a 
                component, which must be of any numeric type, against 
                specified maximum and/or minimum values. Standard
                identifier is “javax.faces.DoubleRange”. | true | 
 | false | technology | active | true | 
| JSF:SPEC:40.2 | 3 | 4.5 | LengthValidator—Checks the length (i.e. number of 
                characters) of the local value of a component, which 
                must be of type String, against maximum and/or minimum 
                values. Standard identifier is “javax.faces.Length”. | true | 
 | false | technology | active | true | 
| JSF:SPEC:40.3 | 3 | 4.5 | LongRangeValidator—Checks the local value of a 
                component, which must be of any numeric type convertible
                to long, against maximum and/or minimum values. Standard
                identifier is “javax.faces.LongRange”. | true | 
 | false | technology | active | true | 
| JSF:SPEC:40.4 | 3 | 4.5 | MethodExpressionValidator—Wraps a MethodExpression and 
                interprets it as pointing to a method that performs 
                validation. Any exception thrown when the expression
                is invoked is wrapped in a ValidatorException in similar 
                fashion as the above validators. | true | 
 | false | technology | active | true | 
| JSF:SPEC:41 | 4 | 1 | The implementation for each standard UIComponent class
        must specify two public static final String constant values: | true | 
 | false | technology | active | true | 
| JSF:SPEC:41.1 | 4 | 1 | COMPONENT_TYPE -- The standard component type identifier
                under which the corresponding component class is 
                registered with the Application object for this 
                application. This value may be used as a parameter to 
                the createComponent() method. | true | 
 | false | technology | active | true | 
| JSF:SPEC:41.2 | 4 | 1 | COMPONENT_FAMILY -- The standard component family 
                identifier used to select an appropriate Renderer for 
                this component. | true | 
 | false | technology | active | true | 
| JSF:SPEC:42 | 4 | 1.1.2 | UIColumn specializes the behavior of render-independent
        properties inherited from the parent class as follows: | true | 
 | false | technology | active | true | 
| JSF:SPEC:42.1 | 4 | 1.1.2 | The default value of the family property must be set to 
                “javax.faces.Column”. | true | 
 | false | technology | active | true | 
| JSF:SPEC:42.2 | 4 | 1.1.2 | The default value of the rendererType property must be 
                set to null. | true | 
 | false | technology | active | true | 
| JSF:SPEC:43 | 4 | 1.2.2 | UICommand components specialize the behavior of 
        renderindependent properties inherited from the parent class as 
        follows: | true | 
 | false | technology | active | true | 
| JSF:SPEC:43.1 | 4 | 1.2.2 | The default value of the family property must be set to 
                “javax.faces.Command”. | true | 
 | false | technology | active | true | 
| JSF:SPEC:43.2 | 4 | 1.2.2 | The default value of the rendererType property must be 
                set to “javax.faces.Button”. | true | 
 | false | technology | active | true | 
| JSF:SPEC:44 | 4 | 1.3.2 | UIData specializes the behavior of render-independent properties
        inherited from the parent component as follows: | true | 
 | false | technology | active | true | 
| JSF:SPEC:44.1 | 4 | 1.3.2 | The default value of the family property must be set to 
                “javax.faces.Data”. | true | 
 | false | technology | active | true | 
| JSF:SPEC:44.2 | 4 | 1.3.2 | The default value of the rendererType property must be 
                set to “javax.faces.Table”. | true | 
 | false | technology | active | true | 
| JSF:SPEC:45 | 4 | 1.3.2 | A DataModel wrapper instance must automatically be provided by 
        the JSF implementation if the current value is of one of the 
        following types: | true | 
 | false | technology | active | true | 
| JSF:SPEC:45.1 | 4 | 1.3.2 | java.util.List | true | 
 | false | technology | active | true | 
| JSF:SPEC:45.2 | 4 | 1.3.2 | Array of java.util.Object | true | 
 | false | technology | active | true | 
| JSF:SPEC:45.3 | 4 | 1.3.2 | java.sql.ResultSet (which therefore also supports 
                javax.sql.RowSet) | true | 
 | false | technology | active | true | 
| JSF:SPEC:45.4 | 4 | 1.3.2 | javax.servlet.jsp.jstl.sql.Result | true | 
 | false | technology | active | true | 
| JSF:SPEC:45.5 | 4 | 1.3.2 | Any other Java object is wrapped by a DataModel instance 
                with a single row | true | 
 | false | technology | active | true | 
| JSF:SPEC:46 | 4 | 1.3.3 | UIData specializes the behavior of the processDecodes(), 
        processValidators(), and processUpdates() methods inherited from
        its parent as follows: | true | 
 | false | technology | active | true | 
| JSF:SPEC:46.1 | 4 | 1.3.3 | For each of these methods, the UIData implementation 
                must iterate over each row in the underlying data model, 
                starting with the row identified by the first property, 
                for the number of rows indicated by the rows property, 
                by calling the setRowIndex() method. | true | 
 | false | technology | active | true | 
| JSF:SPEC:46.2 | 4 | 1.3.3 | When iteration is complete, set the rowIndex property of 
                this component, and of the underlying DataModel, to 
                zero, and remove any request attribute exposed via the
                var property. | true | 
 | false | technology | active | true | 
| JSF:SPEC:47 | 4 | 1.4.1 | The encodeEnd() method of the renderer for UIForm must call 
        ViewHandler.writeState() before writing out the markup for the 
        closing tag of the form. | true | 
 | false | technology | active | true | 
| JSF:SPEC:48 | 4 | 1.4.2 | UIForm specializes the behavior of render-independent properties
        inherited from the parent component as follows: | true | 
 | false | technology | active | true | 
| JSF:SPEC:48.1 | 4 | 1.4.2 | The default value of the family property must be set to 
                “javax.faces.Form”. | true | 
 | false | technology | active | true | 
| JSF:SPEC:48.2 | 4 | 1.4.2 | The default value of the rendererType property must be 
                set to “javax.faces.Form”. | true | 
 | false | technology | active | true | 
| JSF:SPEC:49 | 4 | 1.4.3 | The setSubmitted() method of each UIForm instance in the view 
        must be called during the Apply Request Values phase of the 
        request processing lifecycle, during the processing performed by
        the UIComponent.decode() method.  If this UIForm instance 
        represents the form actually being submitted on this request, 
        the parameter must be set to true; otherwise, it must be set to 
        false. | true | 
 | false | technology | active | true | 
| JSF:SPEC:50 | 4 | 1.4.3 | The value of a UIForm's submitted property must not be saved as 
        part of its state. | true | 
 | false | technology | active | true | 
| JSF:SPEC:51 | 4 | 1.4.3 | The saveState() method of UIForm must call setSubmitted(false) 
        before calling super.saveState(). | true | 
 | false | technology | active | true | 
| JSF:SPEC:52 | 4 | 1.4.3 | Override the parent method to ensure that children of this 
        UIForm instance in the view have the form’s clientId prepended 
        to their clientIds if and only if the form’s prependId property 
        is true. | true | 
 | false | technology | active | true | 
| JSF:SPEC:53 | 4 | 1.5.2 | UIGraphic specializes the behavior of render-independent
        properties inherited from the parent component as follows: | true | 
 | false | technology | active | true | 
| JSF:SPEC:53.1 | 4 | 1.5.2 | The default value of the family property must be set to 
                “javax.faces.Graphic”. | true | 
 | false | technology | active | true | 
| JSF:SPEC:53.2 | 4 | 1.5.2 | The default value of the rendererType property must be 
                set to “javax.faces.Image”. | true | 
 | false | technology | active | true | 
| JSF:SPEC:54 | 4 | 1.6.2 | UIInput specializes the behavior of render-independent 
        properties inherited from the parent component as follows: | true | 
 | false | technology | active | true | 
| JSF:SPEC:54.1 | 4 | 1.6.2 | The default value of the family property must be set to 
                “javax.faces.Input”. | true | 
 | false | technology | active | true | 
| JSF:SPEC:54.2 | 4 | 1.6.2 | The default value of the rendererType property must be 
                set to “javax.faces.Text”. | true | 
 | false | technology | active | true | 
| JSF:SPEC:54.3 | 4 | 1.6.2 | The Converter specified by the converter property (if 
                any) must also be used to perform String->Object 
                conversions during decoding. | true | 
 | false | technology | active | true | 
| JSF:SPEC:54.4 | 4 | 1.6.2 | If the value property has an associated ValueExpression, 
                the setValue() method of that ValueExpression will be 
                called during the Update Model Values phase of the
                request processing lifecycle to push the local value of
                the component back to the corresponding model bean 
                property. | true | 
 | false | technology | active | true | 
| JSF:SPEC:55 | 4 | 1.7.2 | UIMessage specializes the behavior of render-independent
        properties inherited from the parent component as follows: | true | 
 | false | technology | active | true | 
| JSF:SPEC:55.1 | 4 | 1.7.2 | The default value of the family property must be set to 
                “javax.faces.Message”. | true | 
 | false | technology | active | true | 
| JSF:SPEC:55.2 | 4 | 1.7.2 | The default value of the rendererType property must be 
                set to “javax.faces.Message”. | true | 
 | false | technology | active | true | 
| JSF:SPEC:56 | 4 | 1.9.2 | UIOutput specializes the behavior of render-independent
        properties inherited from the parent component as follows: | true | 
 | false | technology | active | true | 
| JSF:SPEC:56.1 | 4 | 1.9.2 | The default value of the family property must be set to 
                “javax.faces.Output”. | true | 
 | false | technology | active | true | 
| JSF:SPEC:56.2 | 4 | 1.9.2 | The default value of the rendererType property must be 
                set to “javax.faces.Text”. | true | 
 | false | technology | active | true | 
| JSF:SPEC:57 | 4 | 1.10.2 | UIPanel specializes the behavior of render-independent
        properties inherited from the parent component as follows: | true | 
 | false | technology | active | true | 
| JSF:SPEC:57.1 | 4 | 1.10.2 | The default value of the family property must be set to 
                “javax.faces.Panel”. | true | 
 | false | technology | active | true | 
| JSF:SPEC:57.2 | 4 | 1.10.2 | The default value of the rendererType property must be 
                set to null. | true | 
 | false | technology | active | true | 
| JSF:SPEC:58 | 4 | 1.11.2 | UIParameter specializes the behavior of renderindependent
        properties inherited from the parent component as follows: | true | 
 | false | technology | active | true | 
| JSF:SPEC:58.1 | 4 | 1.11.2 | The default value of the family property must be set to 
                “javax.faces.Parameter”. | true | 
 | false | technology | active | true | 
| JSF:SPEC:58.2 | 4 | 1.11.2 | The default value of the rendererType property must be 
                set to null. | true | 
 | false | technology | active | true | 
| JSF:SPEC:59 | 4 | 1.12.2 | UISelectBoolean specializes the behavior of render-independent 
        properties inherited from the parent component as follows: | true | 
 | false | technology | active | true | 
| JSF:SPEC:59.1 | 4 | 1.12.2 | The default value of the family property must be set to
                “javax.faces.SelectBoolean”. | true | 
 | false | technology | active | true | 
| JSF:SPEC:59.2 | 4 | 1.12.2 | The default value of the rendererType property must be 
                set to “javax.faces.Checkbox”. | true | 
 | false | technology | active | true | 
| JSF:SPEC:60 | 4 | 1.13.2 | UISelectItem specializes the behavior of renderindependent
        properties inherited from the parent component as follows: | true | 
 | false | technology | active | true | 
| JSF:SPEC:60.1 | 4 | 1.13.2 | The default value of the family property must be set to 
                “javax.faces.SelectItem”. | true | 
 | false | technology | active | true | 
| JSF:SPEC:60.2 | 4 | 1.13.2 | The default value of the rendererType property must be 
                set to null. | true | 
 | false | technology | active | true | 
| JSF:SPEC:60.3 | 4 | 1.13.2 | If the value property is non-null, it must contain a 
                SelectItem instance used to configure the selection item
                specified by this component. | true | 
 | false | technology | active | true | 
| JSF:SPEC:60.4 | 4 | 1.13.2 | If the value property is a value expression, it must 
                point at a SelectItem instance used to configure the 
                selection item specified by this component. | true | 
 | false | technology | active | true | 
| JSF:SPEC:60.5 | 4 | 1.13.2 | If the value property is null, and there is no 
                corresponding value expression, the itemDescription, 
                itemDisabled, itemLabel and itemValue properties must be
                used to construct a new SelectItem representing the 
                selection item specified by this component. | true | 
 | false | technology | active | true | 
| JSF:SPEC:61 | 4 | 1.14.2 | UISelectItems specializes the behavior of renderindependent
        properties inherited | true | 
 | false | technology | active | true | 
| JSF:SPEC:61.1 | 4 | 1.14.2 | The default value of the family property must be set to
                “javax.faces.SelectItems”. | true | 
 | false | technology | active | true | 
| JSF:SPEC:61.2 | 4 | 1.14.2 | The default value of the rendererType property must be 
                set to null. | true | 
 | false | technology | active | true | 
| JSF:SPEC:61.3 | 4 | 1.14.2 | If the value property (or the value returned by a value 
                expression associated with the value property) is 
                non-null, it must contain a SelectItem bean, an array of
                SelectItem beans, a Collection of SelectItem beans, or a 
                Map, where each map entry is used to construct a 
                SelectItem bean with the key as the label property of 
                the bean, and the value as the value property of the
                bean (which must be of the same basic type as the value 
                of the parent component’s value). | true | 
 | false | technology | active | true | 
| JSF:SPEC:62 | 4 | 1.15.3 | UISelectMany must provide a specialized validate() method which 
        ensures that any decoded values are valid options (from the
        nested UISelectItem and UISelectItems children). | true | 
 | false | technology | active | true | 
| JSF:SPEC:63 | 4 | 1.16.2 | UISelectOne specializes the behavior of renderindependent
        properties inherited from the parent component as follows: | true | 
 | false | technology | active | true | 
| JSF:SPEC:63.1 | 4 | 1.16.2 | The default value of the family property must be set to
                “javax.faces.SelectOne”. | true | 
 | false | technology | active | true | 
| JSF:SPEC:63.2 | 4 | 1.16.2 | The default value of the rendererType property must be 
                set to “javax.faces.Menu”. | true | 
 | false | technology | active | true | 
| JSF:SPEC:64 | 4 | 1.16.3 | UISelectOne must provide a specialized validate() method which 
        ensures that any decoded value is a valid option (from the 
        nested UISelectItem and UISelectItems children). | true | 
 | false | technology | active | true | 
| JSF:SPEC:65 | 4 | 1.17.3 | UIViewRoot specializes the behavior of render-independent
        properties inherited from the parent component as follows: | true | 
 | false | technology | active | true | 
| JSF:SPEC:65.1 | 4 | 1.17.3 | The default value of the family property must be set to 
                “javax.faces.ViewRoot”. | true | 
 | false | technology | active | true | 
| JSF:SPEC:65.2 | 4 | 1.17.3 | The default value of the rendererType property must be 
                set to null. | true | 
 | false | technology | active | true | 
| JSF:SPEC:66 | 4 | 2.1.4 | The JSF implementation must provide concrete implementations of
        DataModel (in the javax.faces.model package) for the following 
        data wrapping scenarios: | true | 
 | false | technology | active | true | 
| JSF:SPEC:66.1 | 4 | 2.1.4 | ArrayDataModel -- Wrap an array of Java objects. | true | 
 | false | technology | active | true | 
| JSF:SPEC:66.2 | 4 | 2.1.4 | ListDataModel -- Wrap a java.util.List of Java objects. | true | 
 | false | technology | active | true | 
| JSF:SPEC:66.3 | 4 | 2.1.4 | ResultDataModel -- Wrap an object of type 
                javax.servlet.jsp.jstl.sql.Result (the query results 
                from JSTL’s SQL tag library) | true | 
 | false | technology | active | true | 
| JSF:SPEC:66.4 | 4 | 2.1.4 | ResultSetDataModel -- Wrap an object of type 
                java.sql.ResultSet (which therefore means that
                javax.sql.RowSet instances are also supported). | true | 
 | false | technology | active | true | 
| JSF:SPEC:66.5 | 4 | 2.1.4 | ScalarDataModel -- Wrap a single Java object in what 
                appears to be a one-row data set. | true | 
 | false | technology | active | true | 
| JSF:SPEC:67 | 5 | 3 | It is an error to specify a managed bean class that does not 
        exist, or that cannot be instantiated with a public, zero-args 
        constructor. | true | 
 | false | technology | active | true | 
| JSF:SPEC:68 | 5 | 3 | It is an error to specify a <property-name> element for a 
        property that does not exist, or does not have a public setter
        method, on the specified managed bean class. | true | 
 | false | technology | active | true | 
| JSF:SPEC:69 | 5 | 3 | It is an error to specify a value element that cannot be 
        converted to the type required by a managed property, or that, 
        when evaluated, results in a value that cannot be converted to 
        the type required by a managed property. | true | 
 | false | technology | active | true | 
| JSF:SPEC:70 | 5 | 3 | If the type of the property referenced by the 
        <managed-property> element is a Java enum, the contents of 
        the <value> element must be a String that yields a valid 
        return from java.lang.Enum.valueOf(PROPERTY_CLASS, VALUE) where
        PROPERTY_CLASS is the java.lang.Class for the property and VALUE 
        is the contents of <value> element in the application 
        configuration resource. If any exception is thrown from 
        Enum.valueOf() it is an error. | true | 
 | false | technology | active | true | 
| JSF:SPEC:71 | 5 | 3 | It is an error for a managed bean created through The Managed 
        Bean Creation Facility to have a property that points at an 
        object stored in a scope with a (potentially) shorter life span. 
        Specifically, this means, for an object created with the
        specified <managed-bean-scope>, then <value> 
        evaluations can only point at created objects with the specified
        managed bean scope:
        
        â–  none -- none
        â–  application -- none, application
        â–  session -- none, application, session
        â–  request -- none, application, session, request | true | 
 | false | technology | active | true | 
| JSF:SPEC:72 | 5 | 3 | Data accessed via an implicit object is also defined to be in a 
        scope. The following implicit objects are considered to be in 
        request scope:
        
        â–  cookie
        â–  facesContext
        â–  header
        â–  headerValues
        â–  param
        â–  paramValues
        â–  request
        â–  requestScope
        â–  view | true | 
 | false | technology | active | true | 
| JSF:SPEC:73 | 5 | 3 | The only implicit objects in session scope are session and 
        sessionScope. | true | 
 | false | technology | active | true | 
| JSF:SPEC:74 | 5 | 3 | The following implicit objects are considered to be in 
        application scope:
        
        â–  application
        â–  applicationScope
        â–  initParam | true | 
 | false | technology | active | true | 
| JSF:SPEC:75 | 5 | 3 | It is an error to configure cyclic references between managed 
        beans. | true | 
 | false | technology | active | true | 
| JSF:SPEC:76 | 5 | 3 | Managed bean names must conform to the syntax of a Java language 
        identifier. | true | 
 | false | technology | active | true | 
| JSF:SPEC:77 | 5 | 3 | <null-value/> -- An empty element indicating that this property
        must be explicitly initialized to null. This element is not allowed if 
        the underlying property is of a Java primitive type. | true | 
 | false | technology | active | true | 
| JSF:SPEC:78 | 5 | 3 | Each <managed-property> element contains the following elements 
        used to configure the execution of the corresponding property setter 
        call: | true | 
 | false | technology | active | false | 
| JSF:SPEC:78.1 | 5 | 3 | <property-name> -- The property name of the property to be
                configured. | true | 
 | false | technology | active | true | 
| JSF:SPEC:78.2 | 5 | 3 | <map-entries> -- A set of key/value pairs used to 
                initialize the contents of a property of type java.util.Map. | true | 
 | false | technology | active | true | 
| JSF:SPEC:78.3 | 5 | 3 | <null-value/> -- An empty element indicating that this 
                property must be explicitly initialized to null. This element is 
                not allowed if the underlying property is of a Java primitive
                type. | true | 
 | false | technology | active | true | 
| JSF:SPEC:78.4 | 5 | 3 | <value> -- A String value that will have any leading and 
                trailing spaces stripped, and then be converted  prior to
                setting it to this value. | true | 
 | false | technology | active | true | 
| JSF:SPEC:78.5 | 5 | 3 | <list-entries> -- A set of values used to initialize the 
                contents of a property of type array or java.util.List. | true | 
 | false | technology | active | true | 
| JSF:SPEC:79 | 5 | 3 | The initialization of bean properties from <map-entries> elements 
        must adhere to the following algorithm: | true | 
 | false | technology | active | false | 
| JSF:SPEC:79.1 | 5 | 3 | Call the property getter. If the getter returns null or doesn't 
                exist, create a java.util.HashMap, otherwise
                use the returned java.util.Map. | true | 
 | false | technology | active | true | 
| JSF:SPEC:79.2 | 5 | 3 | Add all entries defined by nested <map-entry> elements in
                the order they are listed, converting key values defined by 
                nested <key> elements to the type defined by <keyclass>
                and entry values defined by nested <value> elements to the 
                type defined by <value-class>. | true | 
 | false | technology | active | true | 
| JSF:SPEC:79.3 | 5 | 3 | If a value is given as a value expression, evaluate the 
                reference and store the result, converting to <value-class> 
                if necessary. If <key-class> and/or <value-class> 
                are not defined, use java.lang.String. Add null for each
                <null-value> element. | true | 
 | false | technology | active | true | 
| JSF:SPEC:79.4 | 5 | 3 | If a new java.util.Map was created, set the property by calling 
                the setter method, or log an error if there is no setter method. | true | 
 | false | technology | active | true | 
| JSF:SPEC:80 | 5 | 3 | The initialization of bean properties from <list-entries> elements
        must adhere to the following algorithm: | true | 
 | false | technology | active | true | 
| JSF:SPEC:80.1 | 5 | 3 | Call the property getter, If the getter returns null or doesn't
                exist, create a java.util.ArrayList, otherwise use the returned 
                Object (an array or a java.util.List). | true | 
 | false | technology | active | true | 
| JSF:SPEC:80.2 | 5 | 3 | add all elements defined by nested <value> elements in the
                order they are listed, converting values defined by nested
                <value> elements to the type defined by <value-class>. | true | 
 | false | technology | active | true | 
| JSF:SPEC:80.3 | 5 | 3 | If a value is given as a value expression, evaluate the 
                reference and store the result, converting to <valueclass>
                if necessary. If a <value-class> is not defined, use the 
                value as-is (i.e., as a java.lang.String). Add null for each 
                <null-value> element. | true | 
 | false | technology | active | true | 
| JSF:SPEC:80.4 | 5 | 3 | If an array was returned, create a java.util.ArrayList and copy 
                all elements from the returned array to the new List, wrapping 
                elements of a primitive type. | true | 
 | false | technology | active | true | 
| JSF:SPEC:80.5 | 5 | 3 | If a new java.util.List was created, and the property is of type
                List, set the property by calling the setter method, or log an 
                error if there is no setter method. | true | 
 | false | technology | active | true | 
| JSF:SPEC:80.6 | 5 | 3 | If a new java.util.List was created, and the property is a java 
                array, convert the List into an array of the property type, and 
                set it by calling the setter method, or log an error if there is
                no setter method. | true | 
 | false | technology | active | true | 
| JSF:SPEC:80.7 | 5 | 3 | If a new java.util.List was created, convert the List
                to an array of the proper type for the property and set the 
                property by calling the setter method, or log an error if there 
                is no setter method. | true | 
 | false | technology | active | true | 
| JSF:SPEC:81 | 5 | 4 | Here is a summary of the valid injection annotations one may use
        in a managed bean.
        
        @Resource
        @Resources
        @EJB
        @EJBs
        @WebServiceRef
        @WebServiceRefs
        @PersistenceContext
        @PersistenceContexts
        @PersistenceUnit
        @PersistenceUnits | true | 
 | false | technology | active | true | 
| JSF:SPEC:82 | 5 | 4.1 | JSF implementations running in a Java EE 5 compliant container must 
        support attaching the @PostConstruct and @PreDestroy annotations to aid 
        in awareness of the managedbean lifecycle. | true | 
 | false | technology | active | true | 
| JSF:SPEC:82.1 | 5 | 4.1 | Methods on managed beans declared to be in request, session, or 
                application scope, annotated with @PostConstruct, must be called
                by the JSF implementation after resource injection is performed 
                (if any) but before the bean is placed into scope. | true | 
 | false | technology | active | true | 
| JSF:SPEC:82.2 | 5 | 4.1 | If the method throws an unchecked exception, the JSF 
                implementation must not put the managed-bean into service and 
                further methods on that managed bean instance must not be 
                called. | true | 
 | false | technology | active | true | 
| JSF:SPEC:82.3 | 5 | 4.1 | Methods on managed beans declared to be in request, session, or 
                application scope, annotated with @PreDestroy, must be called by
                the JSF implementation before the bean is removed from its scope
                or before the scope itself is destroyed, whichever comes first.
                This annotation must be supported in all cases where the above 
                @PostConstruct annotation is supported. | true | 
 | false | technology | active | true | 
| JSF:SPEC:82.4 | 5 | 4.1 | If the method throws an unchecked exception, the JSF 
                implementation may log it, but the exception must not otherwise 
                alter the execution. | true | 
 | false | technology | active | true | 
| JSF:SPEC:83 | 6 | 1.1 | The JSF implementation must ensure that the Application instance
        for the current web application is available via this method, as
        a convenient alternative to lookup via an ApplicationFactory. | true | 
 | false | technology | active | true | 
| JSF:SPEC:84 | 6 | 1.2 | Upon creation of the ELContext instance, the implementation must
        take the following action: | true | 
 | false | technology | active | false | 
| JSF:SPEC:84.1 | 6 | 1.2 | Call the ELContext.putContext(java.lang.Class, 
                java.lang.Object) method on the instance, passing in 
                FacesContext.class and the this reference for the 
                FacesContext instance itself. | true | 
 | false | technology | active | true | 
| JSF:SPEC:84.2 | 6 | 1.2 | If the Collection returned by 
                javax.faces.Application.getELContextListeners() is 
                non-empty, create an instance of ELContextEvent and pass 
                it to each ELContextListener instance in the Collection 
                by calling the ELContextListener.contextCreated
                (javax.el.ELContextEvent) method. | true | 
 | false | technology | active | true | 
| JSF:SPEC:85 | 6 | 1.3 | The ExternalContext abstract class must be implemented along 
        with the FacesContext class, and must be accessible via the 
        getExternalContext method in FacesContext. | true | 
 | false | technology | active | true | 
| JSF:SPEC:86 | 6 | 1.3 | The dispatch() must use a RequestDispatcher provided by the
        application context object to incorporate content from a 
        specified context-relative resource. The redirect() method must 
        cause an HTTP Redirect to be sent to the client. | true | 
 | false | technology | active | true | 
| JSF:SPEC:87 | 6 | 1.5 | The getClientIdsWithMessages() method must return an Iterator 
        over the client identifiers for which at least one Message has 
        been queued. This method must be implemented so the clientIds 
        are returned in the order of calls to addMessage(). | true | 
 | false | technology | active | true | 
| JSF:SPEC:88 | 6 | 1.8 | In some circumstances, it is possible that both renderResponse() 
        and responseComplete() might have been called for the request. 
        In this case, the JSF implementation must respect the 
        responseComplete() call (if it was made) before checking to see 
        if renderResponse() was called. | true | 
 | false | technology | active | true | 
| JSF:SPEC:89 | 6 | 1.9 | The getCurrentInstance() method may be called by any Java class 
        in the current web application to retrieve an instance of the
        FacesContext for this request. The JSF implementation must
        ensure that this value is set correctly before 
        FacesContextFactory returns a FacesContext instance, 
        and that the value is maintained in a thread-safe manner. | true | 
 | false | technology | active | true | 
| JSF:SPEC:90 | 6 | 5 | A single instance of javax.faces.context.FacesContextFactory 
        must be made available to each JSF-based web application 
        running in a servlet or portlet container. | true | 
 | false | technology | active | true | 
| JSF:SPEC:91 | 7 | 1.1 | The JSF implementation must provide a default implementation 
        ActionListener that performs the following functions: | true | 
 | false | technology | active | false | 
| JSF:SPEC:91.1 | 7 | 1.1 | The processAction() method must call 
                FacesContext.renderResponse() in order to bypass any 
                intervening lifecycle phases, once the method returns. | true | 
 | false | technology | active | true | 
| JSF:SPEC:91.2 | 7 | 1.1 | The processAction() method must next determine the 
                logical outcome of this event, as follows: | true | 
 | false | technology | active | false | 
| JSF:SPEC:91.2.1 | 7 | 1.1 | If the originating component has a non-null 
                        action property, retrieve the MethodBinding and 
                        call invoke() to perform the application-
                        specified processing in this action method. If 
                        the method returns non-null, call toString() on 
                        the result and use the value returned as the 
                        logical outcome. | true | 
 | false | technology | active | true | 
| JSF:SPEC:91.2.2 | 7 | 1.1 | The default logical outcome is null. | true | 
 | false | technology | active | true | 
| JSF:SPEC:92 | 7 | 1.7 | If a call is made to setViewHandler() after the first time the
        Render Response phase has executed, the call must be ignored by 
        the implementation. | true | 
 | false | technology | active | true | 
| JSF:SPEC:93 | 7 | 1.8 | The default implementation simply returns the ExpressionFactory 
        from the JSP container by calling JspFactory.getDefaultFactory()
        .getJspApplicationContext(servletContext)
        .getExpressionFactory(). | true | 
 | false | technology | active | true | 
| JSF:SPEC:94 | 7 | 1.10 | The "public UIComponent createComponent(ValueExpression
        componentExpression, FacesContext context, 
        String componentType);" method has the following behavior: | true | 
 | false | technology | active | false | 
| JSF:SPEC:94.1 | 7 | 1.10 | Call the getValue() method on the specified 
                ValueExpression, in the context of the specified 
                FacesContext. If this results in a non-null UIComponent 
                instance, return it as the value of this method. | true | 
 | false | technology | active | true | 
| JSF:SPEC:94.2 | 7 | 1.10 | If the getValue() call did not return a component 
                instance, create a new component instance of the 
                specified component type, pass the new component to the
                setValue() method of the specified ValueExpression, and 
                return it. | true | 
 | false | technology | active | true | 
| JSF:SPEC:95 | 7 | 4.2 | The default NavigationHandler implementation must behave as if
        it were performing the following algorithm (although optimized 
        implementation techniques may be utilized): | true | 
 | false | technology | active | false | 
| JSF:SPEC:95.1 | 7 | 4.2 | If the logical outcome value passed to the 
                handleNavigation() method is null, do not scan for 
                matching rules. This is an indication that the current 
                view should be redisplayed. | true | 
 | false | technology | active | true | 
| JSF:SPEC:95.2 | 7 | 4.2 | Find a <navigation-rule> element for which the 
                view identifier (of the view in the FacesContext 
                instance for the current request) matches the 
                <from-view-id> matching pattern of the 
                <navigation-rule>. Rule instances are considered 
                in the following order: | true | 
 | false | technology | active | true | 
| JSF:SPEC:95.2.1 | 7 | 4.2 | An exact match of the view identifier against a 
                        <from-view-id> pattern that does not end with an 
                        asterisk (“*”) character. | true | 
 | false | technology | active | true | 
| JSF:SPEC:95.2.2 | 7 | 4.2 | For <from-view-id> patterns that end with an 
                        asterisk, an exact match on characters preceding the 
                        asterisk against the prefix of the view id. If the 
                        patterns for multiple navigation rules match, pick the 
                        longest matching prefix first. | true | 
 | false | technology | active | true | 
| JSF:SPEC:95.2.3 | 7 | 4.2 | If there is a <navigation-rule> with a 
                        <from-view-id> pattern of only an asterisk3, it 
                        matches any view identifier. | true | 
 | false | technology | active | true | 
| JSF:SPEC:95.3 | 7 | 4.2 | From the <avigation-case> elements nested within the 
                matching <navigationrule> element, locate a matching 
                navigation case by matching the <from-action> and 
                <from-outcome> values against the corresponding parameter 
                values passed in to the handleNavigation() method. Navigation 
                cases are checked in the following order: | true | 
 | false | technology | active | true | 
| JSF:SPEC:95.3.1 | 7 | 4.2 | Cases specifying both a <from-action> value and a 
                        <from-outcome> value are matched against the 
                        action expression and outcome parameters passed to the
                        handleNavigation() method (both parameters must be not 
                        null, and both must be equal to the corresponding 
                        condition values, in order to match). | true | 
 | false | technology | active | true | 
| JSF:SPEC:95.3.2 | 7 | 4.2 | Cases that specify only a <from-outcome> value are 
                        matched against the outcome parameter passed to the 
                        handleNavigation() method (which must be not null,
                        and equal to the corresponding condition value, to 
                        match). | true | 
 | false | technology | active | true | 
| JSF:SPEC:95.3.3 | 7 | 4.2 | Cases that specify only a <from-action> value are 
                        matched against the action expression parameter passed 
                        to the handleNavigation() method (which must be not 
                        null, and equal to the corresponding condition value, to 
                        match). | true | 
 | false | technology | active | true | 
| JSF:SPEC:95.4 | 7 | 4.2 | If a matching <navigation-case> element was located, and 
                the <redirect/> element was not specified in this 
                <navigation-case> (or the application is running in a 
                Portlet environment, where redirects are not possible), use the 
                <to-view-id> element of the matching case to request a new
                UIViewRoot instance from the ViewHandler instance for this 
                application, and pass it to the setViewRoot() method of the 
                FacesContext instance for the current request. Then, exit the 
                algorithm. | true | 
 | false | technology | active | true | 
| JSF:SPEC:95.5 | 7 | 4.2 | If a matching <navigation-case> element was located, the 
                <redirect/> element was specified in this 
                <navigation-case>, and the application is not running in a
                Portlet environment, use the <to-view-id> element of the 
                matching case to construct a context-relative path that 
                corresponds to that view id, cause the current response to
                perform an HTTP redirect to this path, and call 
                responseComplete() on the FacesContext instance for the current 
                request. | true | 
 | false | technology | active | true | 
| JSF:SPEC:95.6 | 7 | 4.2 | If no matching <navigation-case> element was located, 
                return to Step 1 and find the next matching 
                <navigation-rule> element (if any). If there are no more 
                matching rule elements, return without changing the current 
                view. | true | 
 | false | technology | active | true | 
| JSF:SPEC:96 | 7 | 5.2 | The calculateCharacterEncoding() method must fulfill the following 
        responsibilities: | true | 
 | false | technology | active | false | 
| JSF:SPEC:96.1 | 7 | 5.2 | Examine the Content-Type request header. If it has a charset 
                parameter extract it and return it. | true | 
 | false | technology | active | true | 
| JSF:SPEC:96.2 | 7 | 5.2 | If not, test for the existence of a session by calling 
                getSession(false) on the ExternalContext for this FacesContext. 
                If the session is non-null, look in the Map returned by the 
                getSessionMap() method of the ExternalContext for a value under 
                the key given by the value of the symbolic constant
                javax.faces.application.ViewHandler.CHARACTER_ENCODING_KEY. If a
                value is found, convert it to a String and return it. | true | 
 | false | technology | active | true | 
| JSF:SPEC:97 | 7 | 5.2 | The calculateLocale() method must fulfill the following 
        responsibilities: | true | 
 | false | technology | active | false | 
| JSF:SPEC:97.1 | 7 | 5.2 | Attempt to match one of the locales returned by the getLocales() 
                method of the ExternalContext instance for this request, against 
                the supported locales for this application as defined in the 
                application configuration resources. Matching is performed by 
                the algorithm described in Section JSTL.8.3.2 of the JSTL 
                Specification. If a match is found, return the corresponding 
                Locale object. | true | 
 | false | technology | active | true | 
| JSF:SPEC:97.2 | 7 | 5.2 | Otherwise, if the application has specified a default locale in 
                the application configuration resources, return the 
                corresponding Locale object. | true | 
 | false | technology | active | true | 
| JSF:SPEC:97.3 | 7 | 5.2 | Otherwise, return the value returned by calling 
                Locale.getDefault(). | true | 
 | false | technology | active | true | 
| JSF:SPEC:98 | 7 | 5.2 | The calculateRenderKitId() method must fulfill the following 
        responsibilities: | true | 
 | false | technology | active | false | 
| JSF:SPEC:98.1 | 7 | 5.2 | Return the value of the request parameter named by the symbolic 
                constant ResponseStateManager.RENDER_KIT_ID_PARAM if it is not 
                null. | true | 
 | false | technology | active | true | 
| JSF:SPEC:98.2 | 7 | 5.2 | Otherwise, return the value returned by
                Application.getDefaultRenderKitId() if it is not null. | true | 
 | false | technology | active | true | 
| JSF:SPEC:98.3 | 7 | 5.2 | Otherwise, return the value specified by the symbolic constant
                RenderKitFactory.HTML_BASIC_RENDER_KIT. | true | 
 | false | technology | active | true | 
| JSF:SPEC:99 | 7 | 5.2 | The createView() method must fulfill the following responsibilities: | true | 
 | false | technology | active | false | 
| JSF:SPEC:99.1 | 7 | 5.2 | Calculate the viewId that corresponds to this request, as 
                follows: | true | 
 | false | technology | active | false | 
| JSF:SPEC:99.1.1 | 7 | 5.2 | If prefix mapping (such as “/faces/*”) is used for 
                        FacesServlet, the viewId is set from the extra path 
                        information of the request URI. | true | 
 | false | technology | active | true | 
| JSF:SPEC:99.1.2 | 7 | 5.2 | If suffix mapping (such as “*.faces”) is used for 
                        FacesServlet, the viewId is set from the servlet path 
                        information of the request URI, after replacing the 
                        suffix with the value of the context initialization 
                        parameter named by the symbolic constant
                        ViewHandler.DEFAULT_SUFFIX_PARAM_NAME (if no such 
                        context initialization parameter is present, use the 
                        value of the symbolic constant
                        ViewHandler.DEFAULT_SUFFIX as the replacement suffix). | true | 
 | false | technology | active | true | 
| JSF:SPEC:99.2 | 7 | 5.2 | If no viewId could be identified, or the viewId is exactly equal 
                to the servlet mapping, call the redirect() method of the 
                ExternalContext instance for this request, passing the context 
                path of this web application. | true | 
 | false | technology | active | true | 
| JSF:SPEC:99.3 | 7 | 5.2 | Create a new UIViewRoot object instance | true | 
 | false | technology | active | true | 
| JSF:SPEC:99.4 | 7 | 5.2 | Conditionally copy the renderKitId and locale from any current 
                view for the current request (as described in the Javadocs for 
                createView()). | true | 
 | false | technology | active | true | 
| JSF:SPEC:99.5 | 7 | 5.2 | Return the newly created UIViewRoot. | true | 
 | false | technology | active | true | 
| JSF:SPEC:100 | 7 | 5.2 | The getActionURL() method must fulfill the following responsibilities: | true | 
 | false | technology | active | false | 
| JSF:SPEC:100.1 | 7 | 5.2 | If the specified viewId does not start with a “/”, throw
                IllegalArgumentException. | true | 
 | false | technology | active | true | 
| JSF:SPEC:100.2 | 7 | 5.2 | If prefix mapping (such as “/faces/*”) is used for FacesServlet, 
                prepend the context path of the current application, and the 
                specified prefix, to the specified viewId and return the 
                completed value. For example “/cardemo/faces/chooseLocale.jsp”. | true | 
 | false | technology | active | true | 
| JSF:SPEC:100.3 | 7 | 5.2 | If suffix mapping (such as “*.faces”) is used for FacesServlet, 
                and the specified viewId ends with the specified suffix, 
                replacing the suffix with the value specified by the context 
                initialization parameter named by the symbolic constant
                ViewHandler.DEFAULT_SUFFIX_NAME (if no such context 
                initialization parameter is present, use the value of the 
                symbolic constant ViewHandler.DEFAULT_SUFFIX as the replacement 
                suffix), prefix this value with the context path for the current 
                web application, and return the result. For example
                “/cardemo/chooseLocale.faces” | true | 
 | false | technology | active | true | 
| JSF:SPEC:101 | 7 | 5.2 | The getResourceURL() method must fulfill the following responsibilities: | true | 
 | false | technology | active | false | 
| JSF:SPEC:101.1 | 7 | 5.2 | If the specified path starts with a “/”, prefix it with the 
                context path for the current web application, and return the 
                result. | true | 
 | false | technology | active | true | 
| JSF:SPEC:101.2 | 7 | 5.2 | Otherwise, return the specified path value unchanged. | true | 
 | false | technology | active | true | 
| JSF:SPEC:102 | 7 | 5.2 | The initView() method must fulfill the following responsibilities:
        Call calculateCharacterEncoding(). If the result is non-null pass the 
        result to the setRequestCharacterEncoding() method of the 
        ExternalContext for this FacesContext. | true | 
 | false | technology | active | true | 
| JSF:SPEC:103 | 7 | 5.2 | The renderView() method must fulfill the following responsibilities: | true | 
 | false | technology | active | false | 
| JSF:SPEC:103.1 | 7 | 5.2 | If the current request is a ServletRequest, call the set() 
                method of the javax.servlet.jsp.jstl.core.Config class, passing 
                the current ServletRequest, the symbolic constant 
                Config.FMT_LOCALE, and the locale property of the specfied 
                UIViewRoot. This configures JSTL with the application’s
                preferred locale for rendering this response. | true | 
 | false | technology | active | true | 
| JSF:SPEC:103.2 | 7 | 5.2 | Update the JSTL locale attribute in request scope so that JSTL 
                picks up the new locale from the UIViewRoot. | true | 
 | false | technology | active | true | 
| JSF:SPEC:103.3 | 7 | 5.2 | Create a wrapper around the current response from the 
                ExternalContext and set it as the new response in the 
                ExternalContext. | true | 
 | false | technology | active | true | 
| JSF:SPEC:103.4 | 7 | 5.2 | Execute the JSP page to build the view by treating the viewId as
                a context-relative path(starting with a slash character), by 
                passing it to the dispatch() method of the ExternalContext 
                associated with this request. | true | 
 | false | technology | active | true | 
| JSF:SPEC:103.5 | 7 | 5.2 | Restore the original response into the ExternalContext. | true | 
 | false | technology | active | true | 
| JSF:SPEC:103.6 | 7 | 5.2 | If the FacesContext has a non-null ResponseWriter create a new 
                writer using its cloneWithWriter() method, passing the 
                response’s Writer as the argument. | true | 
 | false | technology | active | true | 
| JSF:SPEC:103.7 | 7 | 5.2 | Set the new ResponseWriter into the FacesContext, saving the
                old one aside. | true | 
 | false | technology | active | true | 
| JSF:SPEC:103.8 | 7 | 5.2 | Call saveView() on the StateManager for this application, saving
                the result in a thread-safe manner for use in the writeState() 
                method of ViewHandler. | true | 
 | false | technology | active | true | 
| JSF:SPEC:103.9 | 7 | 5.2 | Call startDocument() on the ResponseWriter. | true | 
 | false | technology | active | true | 
| JSF:SPEC:103.10 | 7 | 5.2 | Call encodeAll() on the UIViewRoot. | true | 
 | false | technology | active | true | 
| JSF:SPEC:103.11 | 7 | 5.2 | Output any content in the wrapped response from above to the
                response, removing the wrapped response from the thread-safe 
                storage. | true | 
 | false | technology | active | true | 
| JSF:SPEC:103.12 | 7 | 5.2 | Call endDocument() on the ResponseWriter. | true | 
 | false | technology | active | true | 
| JSF:SPEC:103.13 | 7 | 5.2 | If the old ResponseWriter was not null, place the old 
                ResponseWriter back into the FacesContext. | true | 
 | false | technology | active | true | 
| JSF:SPEC:104 | 7 | 5.2 | The restoreView() method must fulfill the following responsibilities: | true | 
 | false | technology | active | false | 
| JSF:SPEC:104.1 | 7 | 5.2 | Calculate the viewId that corresponds to this request using the 
                “The ViewId derivation algorithm”. | true | 
 | false | technology | active | true | 
| JSF:SPEC:104.2 | 7 | 5.2 | If no viewId could be identified, return null. | true | 
 | false | technology | active | true | 
| JSF:SPEC:104.3 | 7 | 5.2 | Call the restoreView() method of the associated StateManager, 
                passing the FacesContext instance for the current request and 
                the calculated viewId, and return the returned UIViewRoot, 
                which may be null | true | 
 | false | technology | active | true | 
| JSF:SPEC:105 | 7 | 5.2 | The writeState() method must Obtain the saved state stored in a 
        thread-safe manner during the invocation of renderView() and pass it to 
        the writeState() method of the StateManager for this application. | true | 
 | false | technology | active | true | 
| JSF:SPEC:106 | 7 | 6.3 | The "public Object saveView(FacesContext context)" method causes the 
        tree structure and component state of the view contained in the argument 
        FacesContext to be collected, stored, and returned in a java.lang.Object
        instance that must implement java.io.Serializable. If null is returned 
        from this method, there is no state tosave. | true | 
 | false | technology | active | true | 
| JSF:SPEC:107 | 7 | 6.5 | The "public boolean isSavingStateInClient(FacesContext context)" method
        will Return true if and only if the value of the ServletContext init 
        parameter named by the value of the constant 
        StateManager.STATE_SAVING_METHOD_PARAM_NAME is equal to the value of the
        constant STATE_SAVING_METHOD_CLIENT. Return false otherwise. | true | 
 | false | technology | active | true | 
| JSF:SPEC:108 | 8 | 1.0 | A JSF implementation must provide a default RenderKit instance 
        (named by the render kit identifier associated with the String constant
        RenderKitFactory.HTML_BASIC_RENDER_KIT) that is utilized if no other 
        RenderKit is selected. | true | 
 | false | technology | active | false | 
| JSF:SPEC:109 | 8 | 1.0 | The RenderKit must support a value for the contentTypeList argument that 
        comes straight from the Accept HTTP header, and therefore requires
        parsing according to the specification of the Accept header. | true | 
 | false | technology | active | true | 
| JSF:SPEC:110 | 8 | 3.0 | The "getState(FacesContext context)" implementation must inspect the 
        current request and return the component tree state Object passed to it 
        on a previous invocation of writeState(). | true | 
 | false | technology | active | true | 
| JSF:SPEC:111 | 8 | 3.0 | The ResponseStateManager.RENDER_KIT_ID_PARAM identifier must not be 
        written if: | true | 
 | false | technology | active | false | 
| JSF:SPEC:111.1 | 8 | 3.0 | it is the default render kit identifier as returned by
                Application.getDefaultRenderKitId(). | true | 
 | false | technology | active | true | 
| JSF:SPEC:111.2 | 8 | 3.0 | the render kit identifier is the value of
                RenderKitFactory.HTML_BASIC_RENDER_KIT and
                Application.getDefaultRenderKitId() returns null. | true | 
 | false | technology | active | true | 
| JSF:SPEC:112 | 8 | 4.0 | A single instance of javax.faces.render.RenderKitFactory must be made 
        available to each JSFbased web application running in a servlet or 
        portlet container. | true | 
 | false | technology | active | true | 
| JSF:SPEC:113 | 8 | 4.0 | Every JSF implementation must provide a RenderKit instance for a default 
        render kit identifier that is designated by the String constant
        RenderKitFactory.HTML_BASIC_RENDER_KIT. | true | 
 | false | technology | active | true | 
| JSF:SPEC:114 | 8 | 4.0 | The returned Iterator from getRenderKitIds() must include the value 
        specified by RenderKitFactory.HTML_BASIC_RENDER_KIT. | true | 
 | false | technology | active | true | 
| JSF:SPEC:115 | 8 | 5.0 | As with the standard components in the javax.faces.component package, 
        each HTML component implementation class must define a static public 
        final String constant named COMPONENT_TYPE, whose value is “javax.faces.” 
        concatenated with the class name. | true | 
 | false | technology | active | true | 
| JSF:SPEC:116 | 8 | 5.0 | HTML components, must not define a COMPONENT_FAMILY constant, or
        override the getFamily() method they inherit from their superclass. | true | 
 | false | technology | active | true | 
| JSF:SPEC:117 | 9 | 4.0 | All JSF implementations must provide a tag library containing core
        actions (described below) that are independent of a particular 
        RenderKit.The corresponding tag library descriptor must meet the 
        following requirements: | true | 
 | false | technology | active | false | 
| JSF:SPEC:117.1 | 9 | 4.0 | Must declare a tag library version (tlib-version) value of 1.2. | true | 
 | false | technology | active | true | 
| JSF:SPEC:117.2 | 9 | 4.0 | Must declare a URI (uri) value of http://java.sun.com/jsf/core. | true | 
 | false | technology | active | true | 
| JSF:SPEC:117.3 | 9 | 4.0 | Must be included in the META-INF directory of a JAR file 
                containing the corresponding implementation classes, suitable 
                for inclusion with a web application, such that the tag library 
                descriptor will be located automatically by the algorithm 
                described in Section 7.3 of the JavaServer Pages Specification 
                (version 2.1). | true | 
 | false | technology | active | true | 
| JSF:SPEC:118 | 9 | 4.1 | If the f:actionListener tag is not nested inside a UIComponent custom 
        action, or the UIComponent implementation class does not correctly 
        implement ActionSource, or the specified listener class does not 
        implement javax.faces.event.ActionListener, throw a JspException. | true | 
 | false | technology | active | true | 
| JSF:SPEC:119 | 9 | 4.3 | If the f:convertDateTime tag is not nested inside a UIComponent custom 
        action, or the UIComponent implementation class does not correctly 
        implement ValueHolder, throw a JspException | true | 
 | false | technology | active | true | 
| JSF:SPEC:120 | 9 | 4.3 | The implementation class for f:convertDateTime must meet the following 
        requirements: | true | 
 | false | technology | active | false | 
| JSF:SPEC:120.1 | 9 | 4.3 | Must extend javax.faces.webapp.ConverterTag. | true | 
 | false | technology | active | true | 
| JSF:SPEC:120.2 | 9 | 4.3 | createConverter() method must, if binding is non-null,
                call getValue() on it to obtain a reference to the
                Converter instance. If there is no exception thrown, and 
                binding.getValue() returned a non-null object that implements 
                javax.faces.convert.Converter, it must then cast the returned 
                instance to javax.faces.convert.DateTimeConverter and configure 
                its properties based on the specified attributes for this custom 
                action, and return the configured instance. | true | 
 | false | technology | active | true | 
| JSF:SPEC:120.3 | 9 | 4.3 | If the createConverter()method has an exception thrown, rethrow 
                the exception as a JspException. | true | 
 | false | technology | active | true | 
| JSF:SPEC:120.4 | 9 | 4.3 | If dateStyle is specified but timeStyle is not specified, 
                default to date. | true | 
 | false | technology | active | true | 
| JSF:SPEC:120.5 | 9 | 4.3 | If dateStyle is not specified but timeStyle is specified, 
                default to time. | true | 
 | false | technology | active | true | 
| JSF:SPEC:120.6 | 9 | 4.3 | If both dateStyle and timeStyle are specified, default to both. | true | 
 | false | technology | active | true | 
| JSF:SPEC:121 | 9 | 4.4 | If the f:convertNumber tag is not nested inside a UIComponent custom 
        action, or the UIComponent implementation class does not correctly 
        implement ValueHolder, throw a JspException. | true | 
 | false | technology | active | true | 
| JSF:SPEC:122 | 9 | 4.4 | The implementation class for the f:convertNumber action must meet the 
        following requirements: | true | 
 | false | technology | active | false | 
| JSF:SPEC:122.1 | 9 | 4.4 | Must extend javax.faces.webapp.ConverterTag. | true | 
 | false | technology | active | true | 
| JSF:SPEC:122.2 | 9 | 4.4 | The createConverter() method, If binding is non-null, call 
                binding.getValue() to obtain a reference to the Converter 
                instance. If there is no exception thrown, and 
                binding.getValue() returned a non-null object that implements 
                javax.faces.convert.Converter, it must then cast the returned 
                instance to javax.faces.convert.NumberConverter and configure 
                its properties based on the specified attributes for this custom 
                action, and return the configured instance. | true | 
 | false | technology | active | true | 
| JSF:SPEC:122.3 | 9 | 4.4 | If there was an exception thrown, rethrow the exception as a
                JspException. | true | 
 | false | technology | active | true | 
| JSF:SPEC:122.4 | 9 | 4.4 | Call the createConverter() method of the Application 
                instance for this application, passing converter id 
                “javax.faces.Number”. If the binding attribute was also set, 
                store the converter instance by calling binding.setValue(). It 
                must then cast the returned instance to 
                javax.faces.convert.NumberConverter and configure its properties
                based on the specified attributes for this custom action, and 
                return the configured instance. | true | 
 | false | technology | active | true | 
| JSF:SPEC:123 | 9 | 4.5 | If this tag is not nested inside a UIComponent custom action, or the
        UIComponent implementation class does not correctly implement
        ValueHolder, throw a JspException. | true | 
 | false | technology | active | true | 
| JSF:SPEC:124 | 9 | 4.5 | The implementation class for f:converter action must meet the following 
        requirements: | true | 
 | false | technology | active | false | 
| JSF:SPEC:124.1 | 9 | 4.5 | Must extend javax.faces.webapp.ConverterJspTag. | true | 
 | false | technology | active | true | 
| JSF:SPEC:124.2 | 9 | 4.5 | The createConverter() method must, If binding is non-null, call 
                binding.getValue() to obtain a reference to the Converter 
                instance. If there is no exception thrown, and 
                binding.getValue() returned a non-null object that implements 
                javax.faces.convert.Converter, register it by calling 
                setConverter(). If there was an exception thrown, rethrow 
                the exception as a JspException. | true | 
 | false | technology | active | true | 
| JSF:SPEC:124.3 | 9 | 4.5 | Use the converterId attribute if the converter instance could 
                not be created from the binding attribute. If the converterId 
                attribute is set, call the createConverter() method of the 
                Application instance for this application, passing converter id
                specified by their converterId attribute. If the binding 
                attribute was also set, store the converter instance by calling 
                binding.setValue(). Register the converter instance by calling 
                setConverter(). If there was an exception thrown, rethrow the 
                exception as a JspException. | true | 
 | false | technology | active | true | 
| JSF:SPEC:125 | 9 | 4.6 | f:facet tag must be nested inside a UIComponent custom action.
        Exactly one UIComponent custom action must be nested inside this custom action
        (although the nested component custom action could itself have nested children). | true | 
 | false | technology | active | true | 
| JSF:SPEC:126 | 9 | 4.6 | Exactly one UIComponent custom action must be nested inside this custom 
        action(although the nested component custom action could itself have 
        nested children). | true | 
 | false | technology | active | true | 
| JSF:SPEC:127 | 9 | 4.6 | The implementation class of the f:facet tag must be, or extend, 
        javax.faces.webapp.FacetTag. | true | 
 | false | technology | active | true | 
| JSF:SPEC:128 | 9 | 4.7 | f:loadBundle tag must be nested inside an f:view tag custom action. | true | 
 | false | technology | active | true | 
| JSF:SPEC:129 | 9 | 4.8 | f:param tag must be nested inside a UIComponent custom action. | true | 
 | false | technology | active | true | 
| JSF:SPEC:130 | 9 | 4.8 | The implementation class for f:param tag this action must meet the 
        following requirements: | true | 
 | false | technology | active | true | 
| JSF:SPEC:130.1 | 9 | 4.8 | Must extend javax.faces.UIComponentELTag. | true | 
 | false | technology | active | true | 
| JSF:SPEC:130.2 | 9 | 4.8 | The getComponentType() method must return “Parameter”. | true | 
 | false | technology | active | true | 
| JSF:SPEC:130.3 | 8 | 4.8 | The getRendererType() method must return null. | true | 
 | false | technology | active | true | 
| JSF:SPEC:131 | 9 | 4.9 | f:phaseListener tag must be nested inside a UIViewRoot custom action. | true | 
 | false | technology | active | true | 
| JSF:SPEC:132 | 9 | 4.9 | The specified listener class for f:phaseListener must implement 
        javax.faces.event.PhaseListener. | true | 
 | false | technology | active | true | 
| JSF:SPEC:133 | 9 | 4.9 | type and/or binding must be specified for the phaseListener impl. | true | 
 | false | technology | active | true | 
| JSF:SPEC:134 | 9 | 4.10 | f:selectItem must be nested inside a UIComponent custom action
        that creates a UISelectMany or UISelectOne component instance. | true | 
 | false | technology | active | true | 
| JSF:SPEC:135 | 9 | 4.10 | The implementation class for this action must meet the following 
        requirements: | true | 
 | false | technology | active | false | 
| JSF:SPEC:135.1 | 9 | 4.10 | Must extend javax.faces.UIComponentELTag. | true | 
 | false | technology | active | true | 
| JSF:SPEC:135.2 | 9 | 4.10 | The getComponentType() method must return “SelectItem”. | true | 
 | false | technology | active | true | 
| JSF:SPEC:135.3 | 9 | 4.10 | The getRendererType() method must return null. | true | 
 | false | technology | active | true | 
| JSF:SPEC:136 | 9 | 4.11 | Must be nested inside a UIComponent custom action that creates a 
        UISelectMany or UISelectOne component instance. | true | 
 | false | technology | active | true | 
| JSF:SPEC:137 | 9 | 4.11 | The implementation class for the f:selectItems action must meet
        the following requirements: | true | 
 | false | technology | active | true | 
| JSF:SPEC:137.1 | 9 | 4.11 | Must extend javax.faces.UIComponentELTag. | true | 
 | false | technology | active | true | 
| JSF:SPEC:137.2 | 9 | 4.11 | The getComponentType() method must return 
                “javax.faces.SelectItems”. | true | 
 | false | technology | active | true | 
| JSF:SPEC:137.3 | 9 | 4.11 | The getRendererType() method must return null. | true | 
 | false | technology | active | true | 
| JSF:SPEC:138 | 9 | 4.12 | f:setPropertyActionListener must be nested inside a UIComponent custom 
        action. | true | 
 | false | technology | active | true | 
| JSF:SPEC:139 | 9 | 4.12 | The corresponding UIComponent implementation class for 
        f:setPropertyActionListener must implement ActionSource, and therefore 
        define a public addActionListener() method that accepts an 
        ActionListener parameter. | true | 
 | false | technology | active | true | 
| JSF:SPEC:140 |  |  | The tag implementation must only create and register the ActionListener 
        instance the first time the component for this tag is created | true | 
 | false | technology | active | true | 
| JSF:SPEC:141 | 9 | 4.12 | When the listener executes, call getValue() on the "value" 
        ValueExpression. Pass the result to a call to setValue() on the "target"
        ValueExpression | true | 
 | false | technology | active | true | 
| JSF:SPEC:142 | 9 | 4.12 | This tag creates no output to the page currently being created. It is 
        used solely for the side effect of ActionListener creation and addition. | true | 
 | false | technology | active | true | 
| JSF:SPEC:143 | 9 | 4.12 | If this tag is not nested inside a UIComponent custom action, or the 
        UIComponent implementation class does not correctly implement 
        ActionSource, or the specified listener class does not implement
        javax.faces.event.ActionListener, throw a JspException. | true | 
 | false | technology | active | true | 
| JSF:SPEC:144 | 9 | 4.13 | f:subview must be nested inside a f:view custom action although this 
        custom action might be in a page that is including the page containing
        the f:subview custom action. | true | 
 | false | technology | active | true | 
| JSF:SPEC:145 | 9 | 4.13 | f:subview must not contain an f:view custom action. | true | 
 | false | technology | active | true | 
| JSF:SPEC:146 | 9 | 4.13 | f:subview must have an id attribute whose value is unique within the 
        scope of the parent naming container. | true | 
 | false | technology | active | true | 
| JSF:SPEC:147 | 9 | 4.13 | The implementation class for f:subview must extend 
        javax.faces.UIComponentELTag. | true | 
 | false | technology | active | true | 
| JSF:SPEC:148 | 9 | 4.13 | The implementation class's getComponentType() method must return
        “NamingContainer”. | true | 
 | false | technology | active | true | 
| JSF:SPEC:149 | 9 | 4.13 | The implementation class's getRendererType() method must return null. | true | 
 | false | technology | active | true | 
| JSF:SPEC:150 | 9 | 4.14 | If the f:validateDoubleRange tag is not nested inside a UIComponent
        custom action, or the UIComponent implementation class does not 
        correctly implement EditableValueHolder throw a JspException. | true | 
 | false | technology | active | true | 
| JSF:SPEC:151 | 9 | 4.14 | The implementation class for the f:validateDoubleRange action must meet
        the following requirements: | true | 
 | false | technology | active | false | 
| JSF:SPEC:151.1 | 9 | 4.14 | Must extend javax.faces.webapp.ValidatorTag. | true | 
 | false | technology | active | true | 
| JSF:SPEC:151.2 | 9 | 4.14 | The createValidator() method must, If binding is non-null, 
                create a ValueBinding by invoking 
                Application.createValueExpression() with binding as the 
                expression argument, and Validator.class as the expectedType 
                argument. | true | 
 | false | technology | active | true | 
| JSF:SPEC:151.3 | 9 | 4.14 | use the validatorId if the validator instance could not be 
                created from the binding attribute. | true | 
 | false | technology | active | true | 
| JSF:SPEC:151.4 | 9 | 4.14 | If there is an exception thrown, rethrow the exception as a
                JspException. | true | 
 | false | technology | active | true | 
| JSF:SPEC:152 | 9 | 4.15 | If the f:validateLength tag is not nested inside a UIComponent custom 
        action, or the UIComponent implementation class does not correctly
        implement EditableValueHolder, throw a JspException. | true | 
 | false | technology | active | true | 
| JSF:SPEC:153 | 9 | 4.15 | The implementation class for this action must meet the following 
        requirements: | true | 
 | false | technology | active | false | 
| JSF:SPEC:153.1 | 9 | 4.15 | Must extend javax.faces.webapp.ValidatorTag. | true | 
 | false | technology | active | true | 
| JSF:SPEC:153.2 | 9 | 4.15 | If binding is non-null, create a ValueExpression by invoking
                Application.createValueExpression() with binding as the 
                expression argument, and Validator. | true | 
 | false | technology | active | true | 
| JSF:SPEC:153.3 | 9 | 4.15 | Use the validatorId if the validator instance could not be 
                created from the binding attribute. Call the createValidator() 
                method of the Application instance for this application, | true | 
 | false | technology | active | true | 
| JSF:SPEC:153.4 | 9 | 4.15 | If there was an exception thrown, rethrow the exception
                as a JspException. | true | 
 | false | technology | active | true | 
| JSF:SPEC:154 | 9 | 4.16 | f:validateLongRange must be nested inside a EditableValueHolder custom 
        action whose value is (or is convertible to) a long. | true | 
 | false | technology | active | true | 
| JSF:SPEC:155 | 9 | 4.16 | f:validateLongRange must specify either the maximum attribute, the 
        minimum attribute, or both. | true | 
 | false | technology | active | true | 
| JSF:SPEC:156 | 9 | 4.16 | For f:validateLongRange if both limits are specified, the maximum limit 
        must be greater than the minimum limit. | true | 
 | false | technology | active | true | 
| JSF:SPEC:157 | 9 | 4.16 | If the f:validateLongRange tag is not nested inside a UIComponent custom
        action, or the UIComponent implementation class does not correctly 
        implement EditableValueHolder, throw a JspException | true | 
 | false | technology | active | true | 
| JSF:SPEC:158 | 9 | 4.16 | The implementation class for the f:validateLongRange action must meet 
        the following requirements: | true | 
 | false | technology | active | false | 
| JSF:SPEC:158.1 | 9 | 4.16 | Must extend javax.faces.webapp.ValidatorTag. | true | 
 | false | technology | active | true | 
| JSF:SPEC:158.2 | 9 | 4.16 | The createValidator() method must, if binding is non-null,
                create a ValueExpression by invoking
                Application.createValueExpression() with binding as the 
                expression argument, and Validator. | true | 
 | false | technology | active | true | 
| JSF:SPEC:158.3 | 9 | 4.16 | The createValidator() method must, use the validatorId if the
                validator instance could not be created from the binding 
                attribute. | true | 
 | false | technology | active | true | 
| JSF:SPEC:158.4 | 9 | 4.16 | If there is an exception thrown, rethrow the exception as a
                JspException | true | 
 | false | technology | active | true | 
| JSF:SPEC:159 | 9 | 4.17 | f:validator tag must be nested inside a UIComponent custom action whose 
        component class implements EditableValueHolder. | true | 
 | false | technology | active | true | 
| JSF:SPEC:160 | 9 | 4.17 | validatorId and/or binding must be specified. | true | 
 | false | technology | active | true | 
| JSF:SPEC:161 | 9 | 4.17 | If the f:validator tag is not nested inside a UIComponent custom action, 
        or the UIComponent implementation class does not correctly implement
        EditableValueHolder throw a JspException. | true | 
 | false | technology | active | true | 
| JSF:SPEC:162 | 9 | 4.17 | The implementation class for the f:validator action must meet the 
        following requirements: | true | 
 | false | technology | active | false | 
| JSF:SPEC:162.1 | 9 | 4.17 | Must extend javax.faces.webapp.ValidatorJspTag. | true | 
 | false | technology | active | true | 
| JSF:SPEC:162.2 | 9 | 4.17 | The createValidator() method must, if binding is non-null, 
                call binding.getValue() to obtain a reference to the
                Validator instance. | true | 
 | false | technology | active | true | 
| JSF:SPEC:162.3 | 9 | 4.17 | The createValidator() method must, use the validatorId attribute 
                if the validator instance could not be created from the binding 
                attribute. | true | 
 | false | technology | active | true | 
| JSF:SPEC:162.4 | 9 | 4.17 | The createValidator() method must, If there was an exception 
                thrown, rethrow the exception as a JspException. | true | 
 | false | technology | active | true | 
| JSF:SPEC:163 | 9 | 4.18 | f:valueChangeListener must be nested inside a UIComponent custom action. | true | 
 | false | technology | active | true | 
| JSF:SPEC:164 | 9 | 4.18 | The corresponding UIComponent implementation class for 
        f:valueChangeListener must implement EditableValueHolder, and therefore 
        define a public  addValueChangeListener() method that accepts an 
        ValueChangeListener parameter. | true | 
 | false | technology | active | true | 
| JSF:SPEC:165 | 9 | 4.18 | The specified listener class for f:valueChangeListener must implement 
        javax.faces.event.ValueChangeListener. | true | 
 | false | technology | active | true | 
| JSF:SPEC:166 | 9 | 4.18 | type and/or binding must be specified. | true | 
 | false | technology | active | true | 
| JSF:SPEC:167 | 9 | 4.18 | If this tag is not nested inside a UIComponent custom action, or the
        UIComponent implementation class does not correctly implement
        EditableValueHolder, or the specified listener class does not implement
        javax.faces.event.ValueChangeListener, throw a JspException. | true | 
 | false | technology | active | true | 
| JSF:SPEC:168 | 9 | 4.19 | f:verbatim must be implemented as a UIComponentBodyTag. | true | 
 | false | technology | active | true | 
| JSF:SPEC:169 | 9 | 4.19 | The rendererType property for the f:verbatim tag's UIOutput component
        must be set to “javax.faces.Text” | true | 
 | false | technology | active | true | 
| JSF:SPEC:170 | 9 | 4.19 | The f:verbatim tag's transient property must be set to true. | true | 
 | false | technology | active | true | 
| JSF:SPEC:171 | 9 | 4.19 | The value (or value binding, if it is an expression) of the escape 
        attribute must be passed on to the renderer as the value the escape 
        attribute on the UIOutput component. | true | 
 | false | technology | active | true | 
| JSF:SPEC:172 | 9 | 4.20 | Any JSP-created response using actions from the JSF Core Tag Library, 
        as well as actions extending javax.faces.webapp.UIComponentELTag from 
        other tag libraries, must be nested inside an occurrence of the 
        f:view action. | true | 
 | false | technology | active | true | 
| JSF:SPEC:173 | 9 | 4.20 | The implementation class for the f:view action must meet the following 
        requirements: | true | 
 | false | technology | active | false | 
| JSF:SPEC:173.1 | 9 | 4.20 | Must extend javax.faces.UIComponentBodyTag. | true | 
 | false | technology | active | true | 
| JSF:SPEC:173.2 | 9 | 4.20 | The getComponentType() method must return “ViewRoot”. | true | 
 | false | technology | active | true | 
| JSF:SPEC:173.3 | 9 | 4.20 | The getRendererType() method must return null. | true | 
 | false | technology | active | true | 
| JSF:SPEC:174 | 9 | 5.0 | The tag library descriptor for this tag library must meet the following
        requirements: | true | 
 | false | technology | active | false | 
| JSF:SPEC:174.1 | 9 | 5.0 | Must declare a tag library version (tlib-version) value of 
                1.2. | true | 
 | false | technology | active | true | 
| JSF:SPEC:174.2 | 9 | 5.0 | Must declare a URI tag value of 
                http://java.sun.com/jsf/html. | true | 
 | false | technology | active | true | 
| JSF:SPEC:174.3 | 9 | 5.0 | Must be included in the META-INF directory of a JAR file 
                containing the corresponding implementation classes, suitable 
                for inclusion with a web application, such that the tag library
                descriptor will be located automatically by the algorithm
                described in Section 7.3  of the JavaServer Pages Specification
                (version 1.2). | true | 
 | false | technology | active | true | 
| JSF:SPEC:175 | 9 | 5.0 | The custom actions defined in this tag library must specify the
        following return values for the getComponentType() and getRendererType()
        methods, respectively: | true | 
 | false | technology | active | true | 
| JSF:SPEC:175.1 | 9 | 5.0 | Action column: 
                getComponentType()- returns javax.faces.Column
                getRendererType()- returns (null)* | true | 
 | false | technology | active | true | 
| JSF:SPEC:175.2 | 9 | 5.0 | Action commandButton:
                getComponentType()- returns javax.faces.HtmlCommandButton
                getRendererType()- returns javax.faces.Button | true | 
 | false | technology | active | true | 
| JSF:SPEC:175.3 | 9 | 5.0 | Action commandLink:
                getComponentType()- returns javax.faces.HtmlCommandLink
                getRendererType()- returns javax.faces.Link | true | 
 | false | technology | active | true | 
| JSF:SPEC:175.4 | 9 | 5.0 | Action dataTable:
                getComponentType()- returns javax.faces.HtmlDataTable
                getRendererType()- returns javax.faces.Table | true | 
 | false | technology | active | true | 
| JSF:SPEC:175.5 | 9 | 5.0 | Action form:
                getComponentType()- returns javax.faces.HtmlForm
                getRendererType()- returns javax.faces.Form | true | 
 | false | technology | active | true | 
| JSF:SPEC:175.6 | 9 | 5.0 | Action graphicImage:
                getComponentType()- returns javax.faces.HtmlGraphicImage
                getRendererType()- returns javax.faces.Image | true | 
 | false | technology | active | true | 
| JSF:SPEC:175.7 | 9 | 5.0 | Action inputHidden:
                getComponentType()- returns javax.faces.HtmlInputHidden
                getRendererType()- returns javax.faces.Hidden | true | 
 | false | technology | active | true | 
| JSF:SPEC:175.8 | 9 | 5.0 | Action inputSecret:
                getComponentType()- returns javax.faces.HtmlInputSecret
                getRendererType()- returns javax.faces.Secret | true | 
 | false | technology | active | true | 
| JSF:SPEC:175.9 |  |  | Action inputSecret:
                getComponentType()- returns javax.faces.HtmlInputSecret
                getRendererType()- returns javax.faces.Secret | true | 
 | false | technology | active | true | 
| JSF:SPEC:175.10 | 9 | 5.0 | Action inputText:
                getComponentType()- returns javax.faces.HtmlInputText
                getRendererType()- returns javax.faces.Text | true | 
 | false | technology | active | true | 
| JSF:SPEC:175.11 | 9 | 5.0 | Action inputTextarea:
                getComponentType()- returns javax.faces.HtmlInputTextarea
                getRendererType()- returns javax.faces.Textarea | true | 
 | false | technology | active | true | 
| JSF:SPEC:175.12 | 9 | 5.0 | Action message:
                getComponentType()- returns javax.faces.HtmlMessage
                getRendererType()- returns javax.faces.Message | true | 
 | false | technology | active | true | 
| JSF:SPEC:175.13 | 9 | 5.0 | Action messages:
                getComponentType()- returns javax.faces.HtmlMessages
                getRendererType()- returns javax.faces.Messages | true | 
 | false | technology | active | true | 
| JSF:SPEC:175.14 | 9 | 5.0 | Action outputFormat:
                getComponentType()- returns javax.faces.HtmlOutputFormat
                getRendererType()- returns javax.faces.Format | true | 
 | false | technology | active | true | 
| JSF:SPEC:175.15 | 9 | 5.0 | Action outputLabel:
                getComponentType()- returns javax.faces.HtmlOutputLabel
                getRendererType()- returns javax.faces.Label | true | 
 | false | technology | active | true | 
| JSF:SPEC:175.16 | 9 | 5.0 | Action outputLink:
                getComponentType()- returns javax.faces.HtmlOutputLink
                getRendererType()- returns javax.faces.Link | true | 
 | false | technology | active | true | 
| JSF:SPEC:175.17 | 9 | 5.0 | Action outputText:
                getComponentType()- returns javax.faces.HtmlOutputText
                getRendererType()- returns javax.faces.Text | true | 
 | false | technology | active | true | 
| JSF:SPEC:175.18 | 9 | 5.0 | Action panelGrid:
                getComponentType()- returns javax.faces.HtmlPanelGrid
                getRendererType()- returns javax.faces.Grid | true | 
 | false | technology | active | true | 
| JSF:SPEC:175.19 | 9 | 5.0 | Action panelGroup:
                getComponentType()- returns javax.faces.HtmlPanelGroup
                getRendererType()- returns javax.faces.Group | true | 
 | false | technology | active | true | 
| JSF:SPEC:175.20 | 9 | 5.0 | Action selectBooleanCheckbox:
                getComponentType()- 
                returns javax.faces.HtmlSelectBooleanCheckbox
                getRendererType()- returns javax.faces.Checkbox | true | 
 | false | technology | active | true | 
| JSF:SPEC:175.21 | 9 | 5.0 | Action selectManyListbox:
                getComponentType()- returns javax.faces.HtmlSelectManyListbox
                getRendererType()- returns javax.faces.Listbox | true | 
 | false | technology | active | true | 
| JSF:SPEC:175.22 | 9 | 5.0 | Action selectManyMenu:
                getComponentType()- returns javax.faces.HtmlSelectManyMenu
                getRendererType()- returns javax.faces.Menu | true | 
 | false | technology | active | true | 
| JSF:SPEC:175.23 | 9 | 5.0 | Action selectOneListbox:
                getComponentType()- returns javax.faces.HtmlSelectOneListbox
                getRendererType()- returns javax.faces.Listbox | true | 
 | false | technology | active | true | 
| JSF:SPEC:175.24 | 9 | 5.0 | Action selectOneMenu:
                getComponentType()- returns javax.faces.HtmlSelectOneMenu
                getRendererType()- returns javax.faces.Menu | true | 
 | false | technology | active | true | 
| JSF:SPEC:175.25 | 9 | 5.0 | Action selectOneRadio:
                getComponentType()- returns javax.faces.HtmlSelectOneRadio
                getRendererType()- returns javax.faces.Radio | true | 
 | false | technology | active | true | 
| JSF:SPEC:176 | 9 | 5.0 | The tag library descriptor for this tag library (and the corresponding 
        tag handler implementation classes) must meet the following
        requirements: | true | 
 | false | technology | active | true | 
| JSF:SPEC:176.1 | 9 | 5.0 | The attributes for the tags, both in the TLD and in the 
                associated tag handlers, must conform exactly to the type, name, 
                and description given in the TLDDocs for the
                html_basic tag library. | true | 
 | false | technology | active | true | 
| JSF:SPEC:176.2 | 9 | 5.0 | If the type of the attribute is javax.el.MethodExpression, the 
                TLD for the attribute must contain a <deferred-method> 
                with a nested <method-signature>, inside of which is the
                method signature for that MethodExpression, as given in the 
                TLDDocs. The JavaBeans setter method in the tag handler for the 
                tag must  be of type javax.el.MethodExpression. | true | 
 | false | technology | active | true | 
| JSF:SPEC:176.3 | 9 | 5.0 | Any attributes listed in the TLDDocs with a request-time value 
                of true must specify an <rtexprvalue> of true in the TLD. | true | 
 | false | technology | active | true | 
| JSF:SPEC:176.4 | 9 | 5.0 | The following action must be taken to handle the value of the 
                converter property. If isLiteralText() on the converter property
                returns true, get the value of the property and treat it as a 
                converterId by passing it as the argument to the 
                createConverter() method of the Application instance for this 
                webapp, then pass the created Converter to the setConverter() 
                method of the component for this tag. If isLiteralText() on the 
                converter property returns false, call setValueExpression() on 
                the component, passing “converter” as the name of the
                ValueExpression and the ValueExpression instance as the value. | true | 
 | false | technology | active | true | 
| JSF:SPEC:176.5 | 9 | 5.0 | For a non-null action attribute on custom actions related to 
                ActionSource2 components (commandButton, commandLink), the 
                setProperties() method of the tag handler implementation class 
                must pass the value of the action attribtue, which is a 
                MethodExpression, to the component’s setActionExpression()
                method. | true | 
 | false | technology | active | true | 
| JSF:SPEC:176.6 | 9 | 5.0 | For other non-null attributes that correspond to 
                MethodExpression attributes on the underlying components 
                (actionListener, validator, valueChangeListener), the 
                setProperties() method of the tag handler implementation class 
                must store that instance as the value of the corresponding 
                component property. | true | 
 | false | technology | active | true | 
| JSF:SPEC:176.7 | 9 | 5.0 | For any non-null id, scope, or var attribute, the 
                setProperties() method of the tag handler implementation class
                must simply set the value of the corresponding component 
                attribute. | true | 
 | false | technology | active | true | 
| JSF:SPEC:176.8 | 9 | 5.0 | For all other non-null attributes, the setProperties() of the 
                tag handler implementation class method must, if the 
                attribute.isLiteralText() returns true, set the corresponding
                attribute on the underlying component (after performing any
                necessary type conversion). Otherwise, call the 
                setValueExpression() method on the underlying component,
                passing the attribute name and the ValueExpression‘ instance as 
                parameters. | true | 
 | false | technology | active | true | 
| JSF:SPEC:177 | 10 | 3.1 | Facelet pages are authored in XHTML. The runtime must support all XHTML
        pages that confirm with the XHTML-1.0-Transitional DTD, as described at
        http://www.w3.org/TR/xhtml1/#a_dtd_XHTML-1.0-Transitional | true | 
 | false | technology | active | true | 
| JSF:SPEC:178 | 10 | 3.2 | The runtime must support the following syntax for making the tags in a
        tag library available for use in a Facelet page.
        <html xmlns="http://www.w3.org/1999/xhtml"
                 xmlns:prefix="namespace_uri"> | true | 
 | false | technology | active | true | 
| JSF:SPEC:179 | 10 | 3.2 | The runtime must support the following syntax for making the tags in a
        tag library available for use in a Facelet page | true | 
 | false | technology | active | false | 
| JSF:SPEC:179.1 | 10 | 3.2 | Via declaration in the web.xml, as specified in Section11.1.3
                “Application Configuration Parameters” | true | 
 | false | technology | active | true | 
| JSF:SPEC:179.2 | 10 | 3.2 | Via auto discovery by placing the tag library discriptor file
                within a jar on the web application classpath, naming the
                file so that it ends with “.taglib.xml”, without the quotes,
                and placing the file in the META-INF directory in the jar file | true | 
 | false | technology | active | true | 
| JSF:SPEC:180 | 10 | 3.2 | Failure to parse, process and otherwise interpret any of the tag
         library files discovered must cause the application to fail to deploy
         and must cause an informative error message to be logged. | true | 
 | false | technology | active | true | 
| JSF:SPEC:181 | 10 | 3.3.1 | The runtime must support the following two ways of declaring a
         composite component library. | true | 
 | false | technology | active | false | 
| JSF:SPEC:181.1 | 10 | 3.3.1 | If a facelet taglibrary is declared in an XHTML page with a
                namespace starting with the string
                “http://java.sun.com/jsf/composite/” (without the quotes),
                the remainder of the namespace declaration is taken as the name
                of a resource library as described in Section2.6.1.4 “Libraries
                of Localized and Versioned Resources | true | 
 | false | technology | active | true | 
| JSF:SPEC:181.2 | 10 | 3.3.1 | the runtime must also support the <composite-library-name>
                element. | true | 
 | false | technology | active | true | 
| JSF:SPEC:182 | 10 | 3.3.2 | If, during the process of building the view, the facelet runtime
         encounters an element in the page using the prefix for the namespace of
         a composite component library, the runtime must create a Resource
         instance with a library property equal to the library name derived in
         Section10.3.3.1 “Declaring a composite component library for use in a
         Facelet page”and call the variant of application.createComponent() that
         takes a Resource. | true | 
 | false | technology | active | true | 
| JSF:SPEC:183 | 10 | 3.3.2 | After causing the top level component to be instantiated, the runtime
         must create a UIComponent with component- family of javax.faces.Panel
         and renderer-type javax.faces.Group to be installed as a facet of the
         top level component under the facet name
         UIComponent.COMPOSITE_FACET_NAME. | true | 
 | false | technology | active | true | 
| JSF:SPEC:184 | 10 | 3.3.3 | The runtime must support the use of composite: tag library in the
        defining page pointed to by the Resource derived as specified in
        Section10.3.3.2 “Creating an instance of a top level component” | true | 
 | false | technology | active | true | 
| JSF:SPEC:185 | 10 | 3.3.3 | The runtime must ensure that all UIComponent children in the composite
        component definition within the defining page are placed as children of
        the UIComponent.COMPOSITE_FACET_NAME facet of the top level facet | true | 
 | false | technology | active | true | 
| JSF:SPEC:186 | 10 | 3.3.3 | The runtime must ensure that all such attributes are copied to the
        attributes map of the top level component instance in the following
        manner. | true | 
 | false | technology | active | false | 
| JSF:SPEC:186.1 | 10 | 3.3.3 | Obtain a reference to the ExpressionFactory, for discussion
                called expressionFactory. | true | 
 | false | technology | active | true | 
| JSF:SPEC:186.2 | 10 | 3.3.3 | Let the value of the attribute in the using page be value. | true | 
 | false | technology | active | true | 
| JSF:SPEC:186.3 | 10 | 3.3.3 | If value is “id” or “binding” without the quotes, skip to the
                next attribute. | true | 
 | false | technology | active | true | 
| JSF:SPEC:186.4 | 10 | 3.3.3 | f the value of the attribute starts with “#{“ (without the
                quotes) call expressionFactory.createValueExpression(elContext,
                value, Object.class) | true | 
 | false | technology | active | true | 
| JSF:SPEC:186.5 | 10 | 3.3.3 | If the value of the attribute does not start with “#{“, call
                expressionFactory.createValueExpression(value, Object.class) | true | 
 | false | technology | active | true | 
| JSF:SPEC:186.6 | 10 | 3.3.3 | If there already is a key in the map for value, inspect the type
                of the value at that key. If the type is MethodExpression take
                no action. | true | 
 | false | technology | active | true | 
| JSF:SPEC:187 | 10 | 3.3.3 | If the type of the attribute is a MethodExpression, the code that
          takes the value of the attribute and creates an actual
          MethodExpression instance around it must take the following special
          action. | true | 
 | false | technology | active | false | 
| JSF:SPEC:187.1 | 10 | 3.3.3 | Obtain a reference to the current composite component by calling
                UIComponent.getCurrentCompositeComponent(). | true | 
 | false | technology | active | true | 
| JSF:SPEC:187.2 | 10 | 3.3.3 | Look in the attribute of the component for a key under the value
                attrName. | true | 
 | false | technology | active | true | 
| JSF:SPEC:187.3 | 10 | 3.3.3 | There must be a value and it must be of type MethodExpression.
                If either of these conditions are false allow the ensuing
                exception to be thrown. | true | 
 | false | technology | active | true | 
| JSF:SPEC:187.4 | 10 | 3.3.3 | Call invoke() on the discovered MethodExpression, passing the
                arguments passed to our invoke() method. | true | 
 | false | technology | active | true | 
| JSF:SPEC:188 | 10 | 4.1.1 | The String value for identifiers specified for execute and render may be
        specified as a search expression as outlined in the JavaDocs for
        UIComponent.findComponent.The implementation must resolve these
        identifiers as specified for UIComponent.findComponent. | true | 
 | false | technology | active | true | 
| JSF:SPEC:189 | 10 | 4.1.1 | A TagAttibuteException must be thrown if an “event” attribute value is
        specified that does not match the events supported by the component
        type. | true | 
 | false | technology | active | true | 
| JSF:SPEC:190 | 10 | 4.1.1 | The event attribute that is specified, must be one of the events
        returned from the ClientBehaviorHolder component implementation of
        ClientBehaviorHolder.getEventNames. | true | 
 | false | technology | active | true | 
| JSF:SPEC:191 | 10 | 4.1.1 | If an event is not specified the value returned from the component
        implementation of ClientBehaviorHolder.getDefaultEventName must be used.
        If the event is still not determined, a TagAttributeException must be
        thrown. | true | 
 | false | technology | active | true | 
| JSF:SPEC:192 | 10 | 4.1.1 | If an event is not specified the value returned from the component
        implementation of ClientBehaviorHolder.getDefaultEventName must be used.
        If the event is still not determined, a TagAttributeException must be
        thrown. | true | 
 | false | technology | active | true | 
| JSF:SPEC:193 | 10 | 4.1.1 | The "Description" tag handler must create an instance of
        javax.faces.component.behavior.AjaxBehavior instance using the tag
        attribute values. | true | 
 | false | technology | active | true | 
| JSF:SPEC:194 | 10 | 4.1.1 | If teh "Description" tag is nested within a single ClientBehaviorHolder
        component: | true | 
 | false | technology | active | false | 
| JSF:SPEC:194.1 | 10 | 4.1.1 | If the event attribute is not specified, determine the event by
                calling the component’s getDefaultEventName method. If that
                returns null, throw an exception. | true | 
 | false | technology | active | true | 
| JSF:SPEC:194.2 | 10 | 4.1.1 | If the event attribute is specified, ensure that it is a valid
                event - that is one of the events contained in the Collection
                returned from getEventNames method. If it does not exist in this
                Collection, throw an exception. | true | 
 | false | technology | active | true | 
| JSF:SPEC:194.3 | 10 | 4.1.1 | Add the AjaxBehavior to the component by calling the addBehavior
                method, passing the event and AjaxBehavior instance. | true | 
 | false | technology | active | true | 
| JSF:SPEC:195 | 10 | 5 | When the VDL calls for the creation of a UIComponent instance, after
        calling Application.createComponent() to instantiate the component
        instance, and after calling setRendererType() on the newly instantiated
        component instance, the following action must be taken. | true | 
 | false | technology | active | false | 
| JSF:SPEC:195.1 | 10 | 4.1.1 | Obtain the Renderer for this component. If no Renderer is
                present, ignore the following steps. | true | 
 | false | technology | active | true | 
| JSF:SPEC:195.2 | 10 | 4.1.1 | Call getClass() on the Renderer instance and inspect if the
                ListenerFor annotation is present. If so, inspect if the
                Renderer instance implements ComponentSystemEventListener. If
                neither of these conditions are true, ignore the following
                steps. | true | 
 | false | technology | active | true | 
| JSF:SPEC:195.3 | 10 | 4.1.1 | Obtain the value of the systemEventClass() property of the
                ListenerFor annotation on the Renderer instance. | true | 
 | false | technology | active | true | 
| JSF:SPEC:195.4 | 10 | 4.1.1 | Call subscribeToEvent() on the UIComponent instance from which
                the Renderer instance was obtained, using the systemEventClass
                from the annotation as the second argument, and the Renderer
                instance as the third argument. | true | 
 | false | technology | active | true | 
| JSF:SPEC:196 | 11 | 1.1 | This servlet must be defined, in the deployment descriptor of an
        application that wishes to employ this portable mechanism.
        The servlet name, denoted as faces-servlet-name above, may be any
        desired value; however, the same value must be used as teh servlet-name
        in the servlet mapping. | true | 
 | false | technology | active | true | 
| JSF:SPEC:197 | 11 | 1.2 | JSF implementations must support web application that define a 
        <servlet-mapping> that maps any valid url-pattern to the
        FacesServlet. | true | 
 | false | technology | active | true | 
| JSF:SPEC:198 | 11 | 1.3 | JSF implementations are required to support the following application
        configuration parameter names: | true | 
 | false | technology | active | false | 
| JSF:SPEC:198.1 | 11 | 1.3 | javax.faces.CONFIG_FILES -- Comma-delimited list of 
                context-relative resource paths under which the JSF 
                implementation will look for application configuration
                resources  before loading a configuration resource named 
                “/WEB-INF/faces-config.xml” | true | 
 | false | technology | active | true | 
| JSF:SPEC:198.2 | 11 | 1.3 | javax.faces.DEFAULT_SUFFIX -- The default suffix for 
                extension-mapped resources that contain JSF components. If not 
                specified, the default value “.jsp” must be used. | true | 
 | false | technology | active | true | 
| JSF:SPEC:198.3 | 11 | 1.3 | javax.faces.FACELETS_SUFFIX -- Allow the web application to
                define an alternate suffix for Facelet based XHTML pages
                containing JSF content. See the javadocs for the symbolic
                constant ViewHandler.FACELETS_SUFFIX_PARAM_NAME for the
                complete specification. | true | 
 | false | technology | active | true | 
| JSF:SPEC:198.4 | 11 | 1.3 | javax.faces.LIFECYCLE_ID -- Lifecycle identifier of the 
                Lifecycle instance to be used when processing JSF requests for 
                this web application. If not specified, the JSF default 
                instance, identified by LifecycleFactory.DEFAULT_LIFECYCLE, must 
                be used. | true | 
 | false | technology | active | true | 
| JSF:SPEC:198.5 | 11 | 1.3 | javax.faces.STATE_SAVING_METHOD -- The location where state 
                information is saved. Valid values are “server” (typically saved 
                in HttpSession) and “client (typically saved as a hidden field 
                in the subsequent form submit). If not specified, the default 
                value “server” must be used. | true | 
 | false | technology | active | true | 
| JSF:SPEC:198.6 | 11 | 1.3 | javax.faces.PARTIAL_STATE_SAVING --The ServletContext init
                parameter consulted by the runtime to determine if the partial
                state saving mechanism should be used. If undefined, the runtime
                must determine the version level of the application. | true | 
 | false | technology | active | true | 
| JSF:SPEC:198.6.1 | 11 | 1.3 | For applications versioned at 1.2 and under, the runtime
                        must not use the partial state saving mechanism. | true | 
 | false | technology | active | true | 
| JSF:SPEC:198.6.2 | 11 | 1.3 | For applications versioned at 2.0 and above, the runtime
                        must use the partial state saving mechanism. | true | 
 | false | technology | active | true | 
| JSF:SPEC:198.7 | 11 | 1.3 | javax.faces.FULL_STATE_SAVING_VIEW_IDS -- The runtime must
                interpret the value of this parameter as a comma separated list
                of view IDs, each of which must have their state saved using the
                state saving mechanism specified in JSF 1.2. | true | 
 | false | technology | active | true | 
| JSF:SPEC:198.8 | 11 | 1.3 | javax.faces.PROJECT_STAGE -- A human readable string describing
                where this particular JSF application is in the software
                development lifecycle. | true | 
 | false | technology | active | true | 
| JSF:SPEC:198.9 | 11 | 1.3 | javax.faces.DISABLE_FACELET_JSF_VIEWHANDLER -- If this param is
                set, and calling toLowerCase().equals("true") on a String
                representation of its value returns true, the default
                ViewHandler must behave as specified in the latest 1.2 version
                of this specification. | true | 
 | false | technology | active | true | 
| JSF:SPEC:198.10 | 11 | 1.3 | javax.faces.FACELETS_LIBRARIES -- If this param is set, the
                runtime must interpret it as a semicolon (;) separated list of
                paths, starting with “/” (without the quotes). | true | 
 | false | technology | active | true | 
| JSF:SPEC:198.11 | 11 | 1.3 | javax.faces.FACELETS_VIEW_MAPPINGS -- If this param is set, the
                runtime must interpret it as a semicolon (;) separated list of
                strings that is used to forcibly declare that certain pages in
                the application must be interpreted as using Facelets,
                regardless of their extension. | true | 
 | false | technology | active | true | 
| JSF:SPEC:198.12 | 11 | 1.3 | javax.faces.INTERPRET_EMPTY_STRING_SUBMITTED_VALUES_AS_NULL --
                If this param is set, and calling toLowerCase().equals("true")
                on a String representation of its value returns true, any
                implementation of UIInput.validate() must take the following
                additional action. context parameter value is true (ignoring
                case), and UIInput.getSubmittedValue() returns a zero-length
                String call UIInput.setSubmittedValue(null) and continue
                processing using null as the current submitted value | true | 
 | false | technology | active | true | 
| JSF:SPEC:198.13 | 11 | 1.3 | javax.faces.DATETIMECONVERTER_DEFAULT_TIMEZONE_IS_SYSTEM_TIMEZO
                NE -- If this param is set, and calling toLowerCase().equals(
                "true") on a String representation of its value returns true,
                Application.createConverter() must guarantee that the default
                for the timezone of all javax.faces.convert.DateTimeConverter
                instances must be equal to TimeZone.getDefault() instead of
                “GMT”. | true | 
 | false | technology | active | true | 
| JSF:SPEC:198.14 | 11 | 1.3 | javax.faces.VALIDATE_EMPTY_FIELDS -- If this param is set, and
                calling toLowerCase().equals("true") on a String representation
                of its value returns true, all submitted fields will be
                validated | true | 
 | false | technology | active | true | 
| JSF:SPEC:198.15 | 11 | 1.3 | javax.faces.validator.DISABLE_DEFAULT_BEAN_VALIDATOR -- If this
                param is set, and calling toLowerCase().equals("true") on a
                String representation of its value returns true, the runtime
                must not automatically add the validator with validator-id equal
                to the value of the symbolic constant
                javax.faces.validator.VALIDATOR_ID to the list of default
                validators. | true | 
 | false | technology | active | true | 
| JSF:SPEC:199 | 11 | 2.6.1 | JSF implementations must also include implementations of the several 
        factory classes. In order to be dynamically instantiated according to 
        the algorithm defined above, the factory implementation class must 
        include a public, no-arguments constructor. | true | 
 | false | technology | active | true | 
| JSF:SPEC:200 | 11 | 2.6.1 | javax.faces.FactoryFinder implements the standard discovery algorithm
        for all factory objects specified in the JavaServer Faces APIs.
        For a given factory class name, a corresponding implementation class is
        searched for based on the following algorithm. Items are listed in order
        of decreasing search precedence: | true | 
 | false | technology | active | false | 
| JSF:SPEC:200.1 | 11 | 2.6.1 | If a default JavaServer Faces configuration file
                (/WEB-INF/faces-config.xml) is bundled into the web application,
                and it contains a factory entry of the given factory class name,
                that factory class is used. | true | 
 | false | technology | active | true | 
| JSF:SPEC:200.2 | 11 | 2.6.1 | If the JavaServer Faces configuration resource(s) named by the
                javax.faces.CONFIG_FILES ServletContext init parameter (if any)
                contain any factory entries of the given factory class name,
                those factories are used, with the last one taking precedence. | true | 
 | false | technology | active | true | 
| JSF:SPEC:200.3 | 11 | 2.6.1 | If there are any META-INF/faces-config.xml resources bundled any
                JAR files in the web ServletContext’s resource paths, the
                factory entries of the given factory class name in those files
                are used, with the last one taking precedence. | true | 
 | false | technology | active | true | 
| JSF:SPEC:200.4 | 11 | 2.6.1 | If a META-INF/services/{factory-class-name} resource is visible
                to the web application class loader for the calling application
                (typically as a result of being present in the manifest of a
                JAR file), its first line is read and assumed to be the name of
                the factory implementation class to use. | true | 
 | false | technology | active | true | 
| JSF:SPEC:200.5 | 11 | 2.6.1 | If none of the above steps yield a match, the JavaServer Faces
                implementation specific class is used. | true | 
 | false | technology | active | true | 
| JSF:SPEC:201 | 11 | 2.6.1 | For each of the public static final String fields on the class
        FactoryFinder whose field names end with the string “_FACTORY”
        (without the quotes), the implementation must provide an implementation
        of the corresponding Factory class using the algorithm described earlier
        in this section. | true | 
 | false | technology | active | true | 
| JSF:SPEC:202 | 11 | 2.6.2 | The FacesServlet implementation class must also declare two static
        public final String constants whose value is a context initialization 
        parameter that affects the behavior of the servlet | true | 
 | false | technology | active | false | 
| JSF:SPEC:202.1 | 11 | 2.6.2 | CONFIG_FILES_ATTR -- the context initialization attribute that 
                may optionally contain a comma-delimited list of context 
                relative resources (in addition to /WEB-INF/facesconfig. xml 
                which is always processed if it is present) to be processed. 
                The value of this constant must be “javax.faces.CONFIG_FILES”. | true | 
 | false | technology | active | true | 
| JSF:SPEC:202.2 | 11 | 2.6.2 | LIFECYCLE_ID_ATTR -- the lifecycle identifier of the Lifecycle 
                instance to be used for processing requests to this application,
                if an instance other than the default is required. The value of 
                this constant must be “javax.faces.LIFECYCLE_ID”. | true | 
 | false | technology | active | true | 
| JSF:SPEC:203 | 11 | 2.6.3 | UIComponentELTag is an implementation of 
        javax.servlet.jsp.tagext.BodyTag, and must be the base class for any JSP
        custom action that corresponds to a JSF UIComponent. | true | 
 | false | technology | active | true | 
| JSF:SPEC:204 | 11 | 3.1 | The faces implementation must now provide the attributetag class. | true | 
 | false | technology | active | true | 
| JSF:SPEC:205 | 11 | 4.2 | the JSF implementation must process zero or more application 
        configuration resources, located according to the following algorithm: | true | 
 | false | technology | active | false | 
| JSF:SPEC:205.1 | 11 | 4.2 | Search for all resources named “META-INF/faces-config.xml” in the
                ServletContext resource paths for this web application, and load 
                each as a JSF configuration resource (in reverse order of the 
                order in which they are returned by getResources() on the 
                current Thread’s ContextClassLoader). | true | 
 | false | technology | active | true | 
| JSF:SPEC:205.2 | 11 | 4.2 | Check for the existence of a context initialization parameter 
                named javax.faces.CONFIG_FILES. If it exists, treat it as a 
                comma-delimited list of context relative resource paths 
                (starting with a “/”), and load each of the specfied resources. | true | 
 | false | technology | active | true | 
| JSF:SPEC:205.3 | 11 | 4.2 | Check for the existence of a web application configuration 
                resource named “/WEBINF/faces-config.xml”, and load it if the 
                resource exists. | true | 
 | false | technology | active | true | 
| JSF:SPEC:206 | 11 | 4.2 | The runtime must publish the
        javax.faces.event.PostConstructApplicationEvent immediately after all
        application configuration resources have been processed. | true | 
 | false | technology | active | true | 
| JSF:SPEC:207 | 11 | 4.2 | XML parsing errors detected during the loading of an application
        resource file are fatal to application startup, and must cause the 
        application to not be made available by the container. | true | 
 | false | technology | active | true | 
| JSF:SPEC:208 | 11 | 4.2 | JSF implementations that are part of a Java EE technology compliant
        implementation are required to validate the application resource file 
        against the XML schema for structural correctness. The validation is not
        required for JSF implementations that are not part of a Java EE 
        technology-compliant implementation. | true | 
 | false | technology | active | true | 
| JSF:SPEC:209 | 11 | 4.3 | Application configuration resources must conform to the XML schema
        shown in Appendix 1.1. In addition, they must include the following 
        schema declaration. | true | 
 | false | technology | active | true | 
| JSF:SPEC:210 | 11 | 4.4 | Application configuration resources that are written to run on JSF 2.0
        must include the following schema declaration... | true | 
 | false | technology | active | true | 
| JSF:SPEC:211 | 11 | 4.4 | Application configuration resources that are written to run on JSF 1.2
        must include the following schema declaration... | true | 
 | false | technology | active | true | 
| JSF:SPEC:212 | 11 | 4.4 | Application configuration resources that are written to run on JSF 1.1
        must include the following schema declaration... | true | 
 | false | technology | active | true | 
| JSF:SPEC:213 | 11 | 4.4 | Application configuration resources that are written to run on JSF 1.0
        must include the following schema declaration... | true | 
 | false | technology | active | true | 
| JSF:SPEC:214 | 11 | 4.6 | The runtime must support the decorator design pattern as specified
        below for the following artifacts. | true | 
 | false | technology | active | true | 
| JSF:SPEC:215 | 11 | 4.7 | If an <name> element is present, it must be considered for the
        ordering of decoratable artifacts (unless the duplicate name exception
        applies, as described below). | true | 
 | false | technology | active | false | 
| JSF:SPEC:215.1 | 11 | 4.7 | Absolute ordering: an <absolute-ordering> element in the
                applicationFacesConfig | true | 
 | false | technology | active | true | 
| JSF:SPEC:215.2 | 11 | 4.7 | Relative ordering: an <ordering> element within a file in
                the applicationConfigurationResources | true | 
 | false | technology | active | true | 
| JSF:SPEC:216 | 11 | 4.7 | The preceding example illustrates some, but not all, of the following
        principles. | true | 
 | false | technology | active | false | 
| JSF:SPEC:216.1 | 11 | 4.7 | <before> means the document must be ordered before the
                document with the name matching the name specified within the
                nested <name> element. | true | 
 | false | technology | active | true | 
| JSF:SPEC:216.2 | 11 | 4.7 | <after> means the document must be ordered after the
                document with the name matching the name specified within the
                nested <name> element. | true | 
 | false | technology | active | true | 
| JSF:SPEC:216.3 | 11 | 4.7 | There is a special element <others /> which may be included
                zero or one time within the <before> or <after> element,
                or zero or one time directly within the <absolute-ordering>
                element. The <others /> element must be handled as follows. | true | 
 | false | technology | active | false | 
| JSF:SPEC:216.3.1 | 11 | 4.7 | If the <before> element contains a nested
                        <others />, the document will be moved to the
                        beginning of the list of sorted documents. | true | 
 | false | technology | active | true | 
| JSF:SPEC:216.3.2 | 11 | 4.7 | If the <after> element contains a nested
                        <others />, the document will be moved to the end of
                        the list of sorted documents. | true | 
 | false | technology | active | true | 
| JSF:SPEC:216.3.3 | 11 | 4.7 | Within a <before> or <after> element, if an
                        <tothers /> element is present, but is not the only
                        <name> element within its parent element, the other
                        elements within that parent must be considered in the
                        ordering process. | true | 
 | false | technology | active | true | 
| JSF:SPEC:216.3.4 | 11 | 4.7 | If the <others /> element appears directly within
                        the <absolute-ordering> element, the runtime must
                        ensure that any application configuration resources in
                        applicationConfigurationResources not explicitly named
                        in the <absolute-ordering> section are included at
                        that point in the processing order. | true | 
 | false | technology | active | true | 
| JSF:SPEC:216.4 | 11 | 4.7 | If a faces-config file does not have an <ordering> or
               <absolute-ordering> element the artifacts are assumed to not
               have any ordering dependency. | true | 
 | false | technology | active | true | 
| JSF:SPEC:216.5 | 11 | 4.7 | If the runtime discovers circular references, an informative
               message must be logged, and the application must fail to deploy.
               Again, one course of action the user may take is to use absolute
               ordering in the applicationFacesConfig. | true | 
 | false | technology | active | false | 
| JSF:SPEC:217 | 11 | 5.1 | If the <faces-config>> element in the WEB-INF/faces-config.xml file
        contains metadata-complete attribute whose value is “true”, the
        implementation must not perform annotation scanning on any classes
        except for those classes provided by the implementation itself. | true | 
 | false | technology | active | true | 
| JSF:SPEC:218 | 11 | 5.1 | If the runtime discovers a conflict between an entry in the Application
        Configuration Resources and an annotation, the entry in the Application
        Configuration Resources takes precedence. | true | 
 | false | technology | active | true | 
| JSF:SPEC:219 | 11 | 5.1 | All classes in WEB-INF/classes must be scanned. | true | 
 | false | technology | active | true | 
| JSF:SPEC:220 | 11 | 5.1 | For every jar in the application's WEB-INF/lib directory, if the jar
        contains a “META-INF/faces-config.xml” file or a file that matches the
        regular expression “META-INF/.*faces-config.xml” (even an empty one),
        all classes in that jar must be scanned. | true | 
 | false | technology | active | true | 
| JSF:SPEC:221 | 12 | 1 | Upon receipt of each JSF-destined request to this web application,
        the JSF implementation must acquire a reference to the Lifecycle
        instance for this web application, and call its execute() and render()
        methods to perform the request processing lifecycle. | true | 
 | false | technology | active | true | 
| JSF:SPEC:222 | 12 | 3 | Any exceptions thrown during the beforePhase() listeners must be caught
        and published to the ExceptionHandler. | true | 
 | false | technology | active | true | 
| JSF:SPEC:223 | 12 | 3 | Any exceptions thrown during the execution of the actual lifecycle
        phase, that reach the runtime code that implements the JSF lifecycle
        phase, must be caught and and published to the ExceptionHandler | true | 
 | false | technology | active | true | 
| JSF:SPEC:224 | 12 | 3 | Any exceptions thrown during the afterPhase() liseteners must be caught
       and published to the ExceptionHandler. | true | 
 | false | technology | active | true | 
| JSF:SPEC:225 | 13 | 1 | There must be a single JavaScript resource that exists with the resource
       identifier jsf.js | true | 
 | false | technology | active | true | 
| JSF:SPEC:226 | 13 | 1 | The jsf.js must exist under the resource library javax.faces, following
       the conventions in Section 2.6 “Resource Handling”. | true | 
 | false | technology | active | true | 
| JSF:SPEC:227 | 13 | 2 | If the OpenAjax library is available, libraries must register themselves
       using OpenAjax.registerLibrary() at the time when the JavaScript files
       are fetched and parsed by the browser’s JavaScript engine. | true | 
 | false | technology | active | true | 
| JSF:SPEC:228 | 13 | 2 | Any implementation that intends to use the JavaServer Faces 2.0 JavaScript
      API must define a top level JavaScript object name jsf, whose type is a
      JavaScript associative array. Within that top level JavaScript object,
      found in the OpenAjax Hub, there must be a property named ajax.. | true | 
 | false | technology | active | true | 
| JSF:SPEC:229 | 13 | 3.2 | All Ajax requests must be put into a client side request queue before
       they are sent to the server to ensure Ajax requests are processed in the
       order they are sent. | true | 
 | false | technology | active | true | 
| JSF:SPEC:230 | 13 | 3.2 | After a request is sent, the Ajax request callback function must remove
       the request from the queue (also known as dequeuing). If the request
       completed successfully, it must be removed from the queue. If there was
       an error, the client must be notified, but the request must still be
       removed from the queue | true | 
 | false | technology | active | true | 
| JSF:SPEC:231 | 13 | 3.3.3 | The Ajax request callback function is called when the Ajax
       request/response interaction is complete. This function must perform the
       following actions: | true | 
 | false | technology | active | false | 
| JSF:SPEC:231.1 | 13 | 3.3.1 | If the return status is >= 200 and < 300, send a “complete”
                event following Section13.3.5.3 “Sending Events”. | true | 
 | false | technology | active | true | 
| JSF:SPEC:231.2 | 13 | 3.3.1 | If the return status is outside the range mentioned above, send
                a “complete” event following Section13.3.5.3 “Sending Events”. | true | 
 | false | technology | active | true | 
| JSF:SPEC:231.3 | 13 | 3.3.1 | Regardless of whether the request completed successfully or not: | true | 
 | false | technology | active | false | 
| JSF:SPEC:231.3.1 | 13 | 3.3.1 | remove the completed requests (Ajax readystate 4) from
                        the request queue (dequeue) - specifically the requests
                        that have been on the queue the longest. | true | 
 | false | technology | active | true | 
| JSF:SPEC:231.3.2 | 13 | 3.3.1 | find the next oldest unprocessed (Ajax readystate 0)
                        request on the queue, and send it. The implementation
                        must ensure that the request that is sent does not enter
                        the queue again. | true | 
 | false | technology | active | true | 
| JSF:SPEC:232 | 13 | 3.4 | The implementation of jsf.ajax.response must handle the response as
        outlined in the JavaScript documentation for jsf.ajax.response. The
        elements in the response must be processed in the
        order they appear in the response. | true | 
 | false | technology | active | true | 
| JSF:SPEC:233 | 13 | 3.5.2 | The implementation must ensure the JavaScript function that is
        registered for an Ajax request must be called in accordance with the
        events outlined in SectionTABLE14-3 “Events”. | true | 
 | false | technology | active | true | 
| JSF:SPEC:234 | 13 | 3.5.3 | The implementation must send events to the runtime as follows: | true | 
 | false | technology | active | false | 
| JSF:SPEC:234.1 | 13 | 3.5.3 | Construct a data payload for events using the properties
                described in SectionTABLE14-4 “Event Data Payload” | true | 
 | false | technology | active | true | 
| JSF:SPEC:234.2 | 13 | 3.5.3 | If an event handler function was registered with the “onevent”
                attribute (Section13.3.5.1 “Monitoring Events For An Ajax
                Request”) call it passing the data payload. | true | 
 | false | technology | active | true | 
| JSF:SPEC:234.3 | 13 | 3.5.3 | If any event handling functions were registered with the
                “addOnEvent” function (Section13.3.5.2 “Monitoring Events
                For All Ajax Requests”) call them passing the data payload. | true | 
 | false | technology | active | true | 
| JSF:SPEC:235 | 13 | 3.6.1 | The implementation must ensure the JavaScript function that is
        registered for an Ajax request must be called in accordance when the
        request status code from the server is as outlined in SectionTABLE14-5
        “Errors”. | true | 
 | false | technology | active | true | 
| JSF:SPEC:236 | 13 | 3.6.2 | The implementation must ensure the JavaScript function that is
        registered must be called in accordance with the errors outlined in
        SectionTABLE14-5 “Errors”. | true | 
 | false | technology | active | true | 
| JSF:SPEC:237 | 13 | 3.6.3 | The implementation must signal errors to the runtime as follows: | true | 
 | false | technology | active | false | 
| JSF:SPEC:237.1 | 13 | 3.6.3 | Construct a data payload for errors using the properties
                described in SectionTABLE14-6 “Error Data Payload”. | true | 
 | false | technology | active | true | 
| JSF:SPEC:237.2 | 13 | 3.6.3 | If an error handler function was registered with the “onerror”
                attribute (Section13.3.6.1 “Handling Errors For An Ajax
                Request”) call it passing the data payload. | true | 
 | false | technology | active | true | 
| JSF:SPEC:237.3 | 13 | 3.6.3 | If any error handling functions were registered with the
                “addOnError” function (Section13.3.6.2 “Handling Errors For All
                Ajax Requests”) call them passing the data payload. | true | 
 | false | technology | active | true | 
| JSF:SPEC:237.4 | 13 | 3.6.3 | If the project stage is “development” (see Section14.5
                “Determining An Application’s Project Stage”) use JavaScript
                “alert” to signal the error(s). | true | 
 | false | technology | active | true | 
| JSF:SPEC:238 | 13 | 3.7 | JavaServer Faces Ajax frameworks must ensure exception information is
        written to the response in the format: | true | 
 | false | technology | active | false | 
| JSF:SPEC:238.1 | 13 | 3.7 | Extract the “class” from the “Throwable” object and write that
                as the contents of error-name in the response. | true | 
 | false | technology | active | true | 
| JSF:SPEC:238.2 | 13 | 3.7 | Extract the “cause” from the “Throwable” object if it is
                available and write that as the contents of error-message in the
                response. If “cause” is not available, write the string returned
                from “Throwable.getMessage()”. | true | 
 | false | technology | active | true | 
| JSF:SPEC:238.3 | 13 | 3.7 | Implementations must ensure that an ExceptionHandler suitable
                for writing exceptions to the partial response is installed if
                the current request required an Ajax response
                (PartialViewContext.isAjaxRequest() returns true). | true | 
 | false | technology | active | true | 
| JSF:SPEC:239 | 13 | 4.2 | The UIViewRoot processDecodes, processValidators and processUpdates
        methods must determine if the request is a partial request using the
        FacesContext.isPartialRequest() method. | true | 
 | false | technology | active | true | 
| JSF:SPEC:240 | 13 | 4.3 | The UIViewRoot getRendersChildren and encodeChildren methods must
        determine if the request is an Ajax request using the
        FacesContext.isAjaxRequest() method. | true | 
 | false | technology | active | true | 
| JSF:SPEC:241 | 13 | 4.4 | Implementations must adhere to the response format as specified in the
    JavaScript docs for jsf.ajax.response. | true | 
 | false | technology | active | true | 
| JSF:SPEC:242 | 13 | 4.4 | Implementations must adhere to the response format as specified in the
    JavaScript docs for jsf.ajax.response. | true | 
 | false | technology | active | true | 
| JSF:SPEC:243 | 14 | 2 | The jsf.ajax.request function is responsible for sending an Ajax request
        to the server. The requirements for this function are as follows: | true | 
 | false | technology | active | false | 
| JSF:SPEC:243.1 | 14 | 2 | The request must be sent asynchronously | true | 
 | false | technology | active | true | 
| JSF:SPEC:243.2 | 14 | 2 | The request must be sent with method type POST | true | 
 | false | technology | active | true | 
| JSF:SPEC:243.3 | 14 | 2 | The request URL will be the form action attribute | true | 
 | false | technology | active | true | 
| JSF:SPEC:243.4 | 14 | 2 | All requests will be queued with the use of a client side
                request queue to help ensure request ordering | true | 
 | false | technology | active | true | 
| JSF:SPEC:244 | 14 | 2.1 | It must be a DOM element object or a string identifier for a DOM
        element. | true | 
 | false | technology | active | true | 
| JSF:SPEC:245 | 14 | 2.4 | The request header must be set with the name Faces-Request and the value
        partial/ajax. | true | 
 | false | technology | active | true | 
| JSF:SPEC:246 | 14 | 3 | The specifics details of this function’s operation must follow the
        jsf.ajax.response JavaScript documentation. | true | 
 | false | technology | active | true | 
| JSF:SPEC:247 | 14 | 5 | This function must return the constant representing the current state of
        the running application in a typical product development lifecycle. The
        returned value must be the value returned from the server side method
        javax.faces.application.Application.getProjectStage() | true | 
 | false | technology | active | true |