## HTML_BASIC render-kit
component-family: javax.faces.Form renderer-type: javax.faces.Form

Renders an HTML "form" element.

Decode Behavior

Obtain the `Map` from the "requestParameterMap" property of the `ExternalContext`. If the map contains an entry for the "clientId" of this `UIForm` component, call `setSubmitted(true)` on the form, otherwise call `setSubmitted(false)` on the form.

Encode Behavior

The value of the "method" attribute must be "post". The value of the "action" attribute must be the result of passing the view identifier of the current view to the `getActionURL()` method of the `ViewHandler` for this application, then passing that String to the `encodeActionURL()` method on the `ExternalContext`. The value of the acceptcharset attribute must be rendered as the value of "accept-charset". If the "styleClass" attribute is specified, render its value as the value of the "class" attribute. Render a "name" attribute with a value the same as the "id" attribute as described in "General Notes on Encoding" regarding the "id" attribute for UIInput components.

Obtain the `UIViewRoot view identifier` and use it to obtain an `action URL` by calling `ViewHandler.getActionURL`. Use the `action URL` to obtain an `encoded action URL` by calling `ExternalContext.encodeActionURL`. Obtain an `encoded partial action URL` by calling `ExternalContext.encodePartialActionURL` using `action URL` as the argument. Compare the result from `ExternalContext.encodePartialActionURL` with the value from `ExternalContext.encodeActionURL()`. If they are different, render a hidden field with the name `javax.faces.encodedURL` and the value of this hidden field as the value from `ExternalContext.encodePartialActionURL`.

Call `ViewHandler.writeState()` before the the close of the "form" element. Render all the necessary hidden fields for all commandLink instances in the page just before the close of the "form" element.
Just before rendering the closing `</form>` element tag, render any resources that have been targeted for this form:

- Obtain a `UIViewRoot` instance.
- Obtain a `List` of component resources targeted for this form with a call to `UIViewRoot.getComponentResources()` with the `String "form"` as the argument.
- Iterate over the returned `List` of `UIComponent` instances and call `encodeAll` on each `UIComponent` instance.

This renderer is responsible for rendering its children.

### Note:

Attributes with a `pass-through` value of `true` are not interpreted by the renderer and are passed straight through to the rendered markup, without checking for validity. Attributes with a `pass-through` value of `false` are interpreted by the renderer, and may or may not be checked for validity by the renderer.

Attributes
attribute-name | pass-through | attribute-class | description | default-value
--- | --- | --- | --- | ---
`accept` | true | `java.lang.String` | List of content types that a server processing this form will handle correctly | undefined |
`acceptcharset` | false | `java.lang.String` | List of character encodings for input data that are accepted by the server processing this form. | undefined |
`dir` | true | `java.lang.String` | Direction indication for text that does not inherit directionality. Valid values are "LTR" (left-to-right) and "RTL" (right-to-left). | undefined |
`enctype` | true | `java.lang.String` | Content type used to submit the form to the server. If not specified, the default value is "application/x-www-form-urlencoded". | "application/x-www-form-urlencoded" |
`lang` | true | `java.lang.String` | Code describing the language used in the generated markup for this component. | undefined |
`onclick` | true | `java.lang.String` | Javascript code executed when a pointer button is clicked over this element. | undefined |
`ondblclick` | true | `java.lang.String` | Javascript code executed when a pointer button is double clicked over this element. | undefined |
`onkeydown` | true | `java.lang.String` | Javascript code executed when a key is pressed down over this element. | undefined |
`onkeypress` | true | `java.lang.String` | Javascript code executed when a key is pressed and released over this element. | undefined |
`onkeyup` | true | `java.lang.String` | Javascript code executed when a key is released over this element. | undefined |
`onmousedown` | true | `java.lang.String` | Javascript code executed when a pointer button is pressed down over this element. | undefined |
`onmousemove` | true | `java.lang.String` | Javascript code executed when a pointer button is moved within this element. | undefined |
`onmouseout` | true | `java.lang.String` | Javascript code executed when a pointer button is moved away from this element. | undefined |
`onmouseover` | true | `java.lang.String` | Javascript code executed when a pointer button is moved onto this element. | undefined |
`onmouseup` | true | `java.lang.String` | Javascript code executed when a pointer button is released over this element. | undefined |
`onreset` | true | `java.lang.String` | Javascript code executed when this form is reset. | undefined |
`onsubmit` | true | `java.lang.String` | Javascript code executed when this form is submitted. | undefined |
`style` | true | `java.lang.String` | CSS style(s) to be applied when this component is rendered. | undefined |
`styleClass` | false | `java.lang.String` | Space-separated list of CSS style class(es) to be applied when this element is rendered. This value must be passed through as the "class" attribute on generated markup. | undefined |
`target` | true | `java.lang.String` | Name of a frame where the response retrieved after this form submit is to be displayed. | undefined |
`title` | true | `java.lang.String` | Advisory title information about markup elements generated for this component. | undefined |

Copyright (c) 2003-2010 Oracle America, Inc. All Rights Reserved.