Renders an HTML "input" element.
Decode Behavior
Obtain the Map
from the "requestParameterMap"
property of the ExternalContext
. If the value in the
Map
for the value of the "clientId" property of the
component is null
, create a String by concatenating
the value of the "clientId" property of the component with the
String ".x" (without the quotes). Create another String in the
same manner, but concatenate ".y" (without the quotes). If
null
is the value in the Map
for both
Strings, return from decode()
. If the value in the
Map
for the value of the "clientId" property of the
component is not null
, get the value of the "type"
attribute, and convert it to lower case. If the result is equal
to the String "reset" (without the quotes), return from
decode()
. Otherwise, create a
javax.faces.event.ActionEvent
around the component,
and pass it to the queueEvent()
method of the
component, which must be an instance of
UICommand
.
Encode Behavior
Render the clientId of the component as the value of the "name"
attribute. Render the current value of the component as the value
of the "value" attribute. If "image" attribute is specified render
it as the value of the "src" attribute after passing it to the
getResourceURL()
method of the
ViewHandler
for this application, and passing the
result through the encodeResourceURL()
method of the
ExternalContext
. Note that calling
getResourceURL()
will prefix the context-root of the
current application if the value of the "src" attribute starts
with "/". When handling the "image" attribute, the value
must not be escaped. For example, &
must not be
turned into &
. If the "styleClass" attribute
is specified, render its value as the value of the "class"
attribute. If the user has specified an "onclick" attribute,
append that JavaScript to any existing JavaScript already being output by the
implementation before rendering.
If the component being rendered by
this renderer has any UIParameter
children, each one
of them must be rendered using the renderer for component-family:
"javax.faces.Input" and renderer-type: "javax.faces.Hidden". For
discussion, this is called the hiddenRenderer. A component with
component-type "javax.faces.Input" must be created for local use
in rendering each UIParameter
child. The "id"
property of the temporary component must be set to the "name" of
the UIParameter
. The "value" property of the
temporary component must be set to the "value" of the
UIParameter
. For each UIParameter
child, the hiddenRenderer must have its
encodeBegin()
, encodeChildren()
, and
encodeEnd()
methods called, in order, passing the
temporary component as the second argument.
Because this renderer is responsible for rendering its own children, the renderer will decide if the end tag is required or not based on the presence or absence of children for the component.
To support entering flows that are defined by both a defining
document id and a flow id, add a component attribute to this
component whose name is given by the value of the symbolic
constant
javax.faces.event.ActionListener.TO_FLOW_DOCUMENT_ID_ATTR_NAME
,
and whose value is the defining document id. For example, when
using this component in a facelet page, the following markup
would cause such an attribute to be added.
<h:commandButton id="start_a" value="enter flow-a" action="flow-a">
<f:attribute name="to-flow-document-id" value="unique"/>
</h:commandButton>
This renderer is responsible for rendering its children.
Attributes with a ignored-by-renderer
value of
true
are not interpreted by the renderer and are conveyed
straight to the rendered markup, without checking for validity. Attributes with a
ignored-by-renderer
value of false
are interpreted
by the renderer, and may or may not be checked for validity by the renderer.
Attributes | |||||
attribute-name | ignored-by-renderer | attribute-class | description | default-value | |
---|---|---|---|---|---|
accesskey
|
true | java.lang.String |
Access key that, when pressed, transfers focus to this element. | undefined | |
alt
|
true | java.lang.String |
Alternate textual description of the element rendered by this component. | 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). These attributes are case sensitive when rendering to XHTML, so care must be taken to have the correct case. | undefined | |
disabled
|
false | boolean |
Flag indicating that this element must never receive focus or be included in a subsequent submit. A value of false causes no attribute to be rendered, while a value of true causes the attribute to be rendered as disabled="disabled". | undefined | |
image
|
false | java.lang.String |
Absolute or relative URL of the image to be displayed for this button. If specified, this "input" element will be of type "image". Otherwise, it will be of the type specified by the "type" property with a label specified by the "value" property. Note that if the value of this attribute starts with "/", the rendered value for this attribute will be prefixed with the context-root for this application. |
undefined | |
lang
|
true | java.lang.String |
Code describing the language used in the generated markup for this component. | undefined | |
onblur
|
true | java.lang.String |
Javascript code executed when this element loses focus. | undefined | |
onchange
|
true | java.lang.String |
Javascript code executed when this element loses focus and its value has been modified since gaining focus. | undefined | |
onclick
|
false | 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 | |
onfocus
|
true | java.lang.String |
Javascript code executed when this element receives focus. | 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 | |
onselect
|
true | java.lang.String |
Javascript code executed when text within this element is selected by the user. | undefined | |
readonly
|
false | boolean |
Flag indicating that this component will prohibit changes by the user. The element may receive focus unless it has also been disabled. A value of false causes no attribute to be rendered, while a value of true causes the attribute to be rendered as readonly="readonly". | undefined | |
role
|
true | java.lang.String |
Per the WAI-ARIA spec and its relationship to HTML5 (Section title ARIA Role Attriubute), every HTML element may have a "role" attribute whose value must be passed through unmodified on the element on which it is declared in the final rendered markup. The attribute, if specified, must have a value that is a string literal that is, or an EL Expression that evaluates to, a set of space-separated tokens representing the various WAI-ARIA roles that the element belongs to. It is the page author's responsibility to ensure that the user agent is capable of correctly interpreting the value of this attribute. |
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 | |
tabindex
|
true | java.lang.String |
Position of this element in the tabbing order for the current document. This value must be an integer between 0 and 32767. | undefined | |
title
|
true | java.lang.String |
Advisory title information about markup elements generated for this component. | undefined | |
type
|
false | java.lang.String |
Type of button to create. Valid values are "submit", "button", and "reset". If not specified, or not a valid value, the default value is "submit". | "submit" |