Project Documentation


Tag name: <s:focus>
UIComponent class: org.apache.myfaces.custom.focus.HtmlFocus
Tag class: org.apache.myfaces.custom.focus.HtmlFocusTag
Component type: org.apache.myfaces.Focus
Component family: javax.faces.Output
Renderer type: org.apache.myfaces.Focus
Renderer class: org.apache.myfaces.custom.focus.HtmlFocusRenderer


<h:inputText id="textfield" value="#{bean.value}" />
<s:focus id="focus" for="textfield" />
<s:focus id="focus" for="#{bean.focusedComponentId}" />


This component must be placed on the page in such a way that it is rendered after all components to which it might contain a reference. Generally, the best place for this component is right before the closing form tag.


Name Type Supports EL? Description
binding String Only EL Identifies a backing bean property (of type UIComponent or appropriate subclass) to bind to this component instance. This value must be an EL expression.
converter javax.faces.convert.Converter Yes The value can either be a static value (ID) or an EL expression. When a static id is specified, an instance of the converter type registered with that id is used. When this is an EL expression, the result of evaluating the expression must be an object that implements the Converter interface.
for String Yes The JSF id of the component to receive focus.
id String Yes An identifier for this particular component instance within a component view.

The id must be unique within the scope of the tag's enclosing NamingContainer (eg h:form or f:subview). The id is not necessarily unique across all components in the current view

This value must be a static value, ie not change over the lifetime of a component. It cannot be defined via an EL expression; only a string is permitted.

immediate boolean Yes A boolean value that identifies the phase during which value change events should fire. During normal event processing, value change events are fired during the "process validations" phase of request processing. If this attribute is set to "true", these methods are fired instead at the end of the "apply request values" phase.
rememberClientFocus boolean Yes
rendered boolean Yes A boolean value that indicates whether this component should be rendered. Default value: true.
required boolean Yes A boolean value that indicates whether an input value is required. If this value is true, and no input value is provided, the error message javax.faces.component.UIInput.REQUIRED is posted.
validator javax.faces.el.MethodBinding Only EL A method binding EL expression, accepting FacesContext, UIComponent, and Object parameters, and returning void, that validates the component's local value.
value Object Yes The initial value of this component. This value is generally set as a value-binding in the form #{myBean.myProperty}, where myProperty can be any data-type of Java (also user-defined data-types), if a converter for this data-type exists. Special cases: 1) f:selectItems - value needs to bind to a list (or an array) of javax.faces.model.SelectItem-instances 2) components implementing UISelectMany (e.g. h:selectManyCheckbox) - value needs to bind to a list (or an array) of values, where the values need to be of the same data-type as the choices of the associated f:selectItems-component 3) components implementing UIData (e.g. h:dataTable) - value needs to bind to a list (or an array) of values, which will be iterated over when the data-table is processed
valueChangeListener javax.faces.el.MethodBinding Only EL A method binding EL expression, accepting a ValueChangeEvent parameter and returning void. The specified method is invoked if this component is modified. The phase that this handler is fired in can be controlled via the immediate attribute.