public class UIInput extends UIOutput implements EditableValueHolder
UIInput is a UIComponent that represents
 a component that both displays output to the user (like
 UIOutput components do) and processes request parameters on the
 subsequent request that need to be decoded.  There are no restrictions
 on the data type of the local value, or the object referenced by the
 value binding expression (if any); however, individual
 Renderers will generally impose restrictions
 on the type of data they know how to display.
During the Apply Request Values phase of the request
 processing lifecycle, the decoded value of this component, usually
 but not necessarily a String, must be stored - but not yet converted -
 using setSubmittedValue().  If the component wishes
 to indicate that no particular value was submitted, it can either
 do nothing, or set the submitted value to null.
By default, during the Process Validators phase of the
 request processing lifecycle, the submitted value will be converted
 to a typesafe object, and, if validation succeeds, stored as a
 local value using setValue().  However, if the
 immediate property is set to true, this
 processing will occur instead at the end of the
 Apply Request Values phase.
 
During the Render Response phase of the request processing
 lifecycle, conversion for output occurs as for UIOutput.
When the validate() method of this UIInput
 detects that a value change has actually occurred, and that all validations
 have been successfully passed, it will queue a
 ValueChangeEvent.  Later on, the broadcast()
 method will ensure that this event is broadcast to all interested
 listeners.  This event will be delivered by default in the
 Process Validators phase, but can be delivered instead
 during Apply Request Values if the immediate
 property is set to true.
By default, the rendererType property must be set to
 "Text".  This value can be changed by calling the
 setRendererType() method.
| Modifier and Type | Field and Description | 
|---|---|
| static String | COMPONENT_FAMILYThe standard component family for this component. | 
| static String | COMPONENT_TYPEThe standard component type for this component. | 
| static String | CONVERSION_MESSAGE_IDThe message identifier of the
  FacesMessageto be created if
 a conversion error occurs, and neither the page author nor
 theConverterExceptionprovides a message. | 
| static String | REQUIRED_MESSAGE_IDThe message identifier of the
  FacesMessageto be created if
 a required check fails. | 
| static String | UPDATE_MESSAGE_IDThe message identifier of the
  FacesMessageto be created if
 a model update error occurs, and the thrown exception has
 no message. | 
bindings| Constructor and Description | 
|---|
| UIInput()Create a new  UIInputinstance with default property
 values. | 
| Modifier and Type | Method and Description | 
|---|---|
| void | addValidator(Validator validator) | 
| void | addValueChangeListener(ValueChangeListener listener)Add a new  ValueChangeListenerto the set of listeners
 interested in being notified whenValueChangeEvents occur. | 
| protected boolean | compareValues(Object previous,
             Object value)Return  trueif the new value is different from the
 previous value. | 
| void | decode(FacesContext context)Decode any new state of this  UIComponentfrom the
 request contained in the specifiedFacesContext, and store
 this state as needed. | 
| protected Object | getConvertedValue(FacesContext context,
                 Object newSubmittedValue)Convert the submitted value into a "local value" of the
 appropriate data type, if necessary. | 
| String | getConverterMessage()If there has been a call to  setConverterMessage(java.lang.String)on this
 instance, return the message. | 
| String | getFamily()Return the identifier of the component family to which this
 component belongs. | 
| String | getRequiredMessage()If there has been a call to  setRequiredMessage(java.lang.String)on this
 instance, return the message. | 
| Object | getSubmittedValue()Return the submittedValue value of this  UIInputcomponent. | 
| MethodBinding | getValidator()Deprecated. 
 getValidators()should be used instead. | 
| String | getValidatorMessage()If there has been a call to  setValidatorMessage(java.lang.String)on this
 instance, return the message. | 
| Validator[] | getValidators() | 
| MethodBinding | getValueChangeListener()If  EditableValueHolder.setValueChangeListener(javax.faces.el.MethodBinding)was not previously called
 for this instance, this method must returnnull. | 
| ValueChangeListener[] | getValueChangeListeners()Return the set of registered  ValueChangeListeners for thisUIInputinstance. | 
| boolean | isImmediate()Return the "immediate" state for this component. | 
| boolean | isLocalValueSet()Return the "local value set" state for this component. | 
| boolean | isRequired()Return the "required field" state for this component. | 
| boolean | isValid()Return a flag indicating whether the local value of this component
 is valid (no conversion error has occurred). | 
| void | processDecodes(FacesContext context)Specialized decode behavior on top of that provided by the
 superclass. | 
| void | processUpdates(FacesContext context)In addition to the standard  processUpdatesbehavior
 inherited fromUIComponentBase, callsupdateModel(). | 
| void | processValidators(FacesContext context)In addition to the standard  processValidatorsbehavior
 inherited fromUIComponentBase, callsvalidate()if theimmediateproperty is false (which is the
 default);  if the component is invalid afterwards, callsFacesContext.renderResponse(). | 
| void | removeValidator(Validator validator) | 
| void | removeValueChangeListener(ValueChangeListener listener)Remove an existing  ValueChangeListener(if any) from the
 set of listeners interested in being notified whenValueChangeEvents occur. | 
| void | resetValue()Convenience method to reset this component's value to the
 un-initialized state. | 
| void | restoreState(FacesContext context,
            Object state) Perform any processing required to restore the state from the
 entries in the state Object. | 
| Object | saveState(FacesContext context) Gets the state of the instance as a
  SerializableObject. | 
| void | setConverterMessage(String message)Override any  ValueExpressionset for the "converterMessage"
 with the literal argument provided to this method. | 
| void | setImmediate(boolean immediate)Set the "immediate" state for this component. | 
| void | setLocalValueSet(boolean localValueSet)Sets the "local value set" state for this component. | 
| void | setRequired(boolean required)Set the "required field" state for this component. | 
| void | setRequiredMessage(String message)Override any  ValueExpressionset for the "requiredMessage"
 with the literal argument provided to this method. | 
| void | setSubmittedValue(Object submittedValue)Set the submittedValue value of this  UIInputcomponent. | 
| void | setValid(boolean valid)Set a flag indicating whether the local value of this component
 is valid (no conversion error has occurred). | 
| void | setValidator(MethodBinding validatorBinding)Deprecated. 
 Use  addValidator(javax.faces.validator.Validator)instead, obtaining the
             argumentValidatorby creating an instance ofMethodExpressionValidator. | 
| void | setValidatorMessage(String message)Override any  ValueExpressionset for the "validatorMessage"
 with the literal argument provided to this method. | 
| void | setValue(Object value)Set the value of this  UIComponent(if any). | 
| void | setValueChangeListener(MethodBinding valueChangeListener)Deprecated. 
 Use  addValueChangeListener(javax.faces.event.ValueChangeListener)instead, obtaining the
             argumentValueChangeListenerby creating an instance ofMethodExpressionValueChangeListener. | 
| void | updateModel(FacesContext context)Perform the following algorithm to update the model data
 associated with this  UIInput, if any, as appropriate. | 
| void | validate(FacesContext context)Perform the following algorithm to validate the local value of
 this  UIInput. | 
| protected void | validateValue(FacesContext context,
             Object newValue)Set the "valid" property according to the below algorithm. | 
getConverter, getLocalValue, getValue, setConverteraddFacesListener, broadcast, encodeBegin, encodeChildren, encodeEnd, findComponent, getAttributes, getChildCount, getChildren, getClientId, getFacesContext, getFacesListeners, getFacet, getFacetCount, getFacets, getFacetsAndChildren, getId, getParent, getRenderer, getRendererType, getRendersChildren, getValueBinding, invokeOnComponent, isRendered, isTransient, processRestoreState, processSaveState, queueEvent, removeFacesListener, restoreAttachedState, saveAttachedState, setId, setParent, setRendered, setRendererType, setTransient, setValueBindingencodeAll, getContainerClientId, getValueExpression, setValueExpressionclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitgetConverter, getLocalValue, getValue, setConverterpublic static final String COMPONENT_TYPE
The standard component type for this component.
public static final String COMPONENT_FAMILY
The standard component family for this component.
public static final String CONVERSION_MESSAGE_ID
The message identifier of the
 FacesMessage to be created if
 a conversion error occurs, and neither the page author nor
 the ConverterException provides a message.
public static final String REQUIRED_MESSAGE_ID
The message identifier of the
 FacesMessage to be created if
 a required check fails.
public static final String UPDATE_MESSAGE_ID
The message identifier of the
 FacesMessage to be created if
 a model update error occurs, and the thrown exception has
 no message.
public UIInput()
Create a new UIInput instance with default property
 values.
public String getFamily()
UIComponentReturn the identifier of the component family to which this
 component belongs.  This identifier, in conjunction with the value
 of the rendererType property, may be used to select
 the appropriate Renderer for this component instance.
public Object getSubmittedValue()
Return the submittedValue value of this UIInput component.
 This method should only be used by the decode() and
 validate() method of this component, or
 its corresponding Renderer.
getSubmittedValue in interface EditableValueHolderpublic void setSubmittedValue(Object submittedValue)
Set the submittedValue value of this UIInput component.
 This method should only be used by the decode() and
 validate() method of this component, or
 its corresponding Renderer.
setSubmittedValue in interface EditableValueHoldersubmittedValue - The new submitted valuepublic void setValue(Object value)
ValueHolderSet the value of this UIComponent (if any).
setValue in interface ValueHoldersetValue in class UIOutputvalue - The new local valuepublic void resetValue()
Convenience method to reset this component's value to the un-initialized state. This method does the following:
Call setValue(java.lang.Object) passing null.
Call setSubmittedValue(java.lang.Object) passing null.
Call setLocalValueSet(boolean) passing false.
Call setValid(boolean) passing true.
Upon return from this call if the instance had a
 ValueBinding associated with it for the "value"
 property, this binding is evaluated when UIOutput.getValue() is called.  Otherwise, null is
 returned from getValue().
public boolean isLocalValueSet()
setValue() automatically reset
 this property to true.isLocalValueSet in interface EditableValueHolderpublic void setLocalValueSet(boolean localValueSet)
setLocalValueSet in interface EditableValueHolderpublic boolean isRequired()
Return the "required field" state for this component.
isRequired in interface EditableValueHolderpublic String getRequiredMessage()
If there has been a call to setRequiredMessage(java.lang.String) on this
 instance, return the message.  Otherwise, call UIComponent.getValueExpression(java.lang.String)
 passing the key "requiredMessage", get the result of the expression, and return it.
 Any ELExceptions thrown during the call to getValue()
 must be wrapped in a FacesException and rethrown.
public void setRequiredMessage(String message)
Override any ValueExpression set for the "requiredMessage"
 with the literal argument provided to this method.  Subsequent calls
 to getRequiredMessage() will return this value;
message - the literal message value to be displayed in the event
                the user hasn't supplied a value and one is required.public String getConverterMessage()
If there has been a call to setConverterMessage(java.lang.String) on this
 instance, return the message.  Otherwise, call UIComponent.getValueExpression(java.lang.String)
 passing the key "converterMessage", get the result of the expression, and return it.
 Any ELExceptions thrown during the call to getValue()
 must be wrapped in a FacesException and rethrown.
public void setConverterMessage(String message)
Override any ValueExpression set for the "converterMessage"
 with the literal argument provided to this method.  Subsequent calls
 to getConverterMessage() will return this value;
message - the literal message value to be displayed in the event
                conversion fails.public String getValidatorMessage()
If there has been a call to setValidatorMessage(java.lang.String) on this
 instance, return the message.  Otherwise, call UIComponent.getValueExpression(java.lang.String)
 passing the key "validatorMessage", get the result of the expression, and return it.
 Any ELExceptions thrown during the call to getValue()
 must be wrapped in a FacesException and rethrown.
public void setValidatorMessage(String message)
Override any ValueExpression set for the "validatorMessage"
 with the literal argument provided to this method.  Subsequent calls
 to getValidatorMessage() will return this value;
message - the literal message value to be displayed in the event
                validation fails.public boolean isValid()
EditableValueHolderReturn a flag indicating whether the local value of this component is valid (no conversion error has occurred).
isValid in interface EditableValueHolderpublic void setValid(boolean valid)
EditableValueHolderSet a flag indicating whether the local value of this component is valid (no conversion error has occurred).
setValid in interface EditableValueHoldervalid - The new valid flagpublic void setRequired(boolean required)
Set the "required field" state for this component.
setRequired in interface EditableValueHolderrequired - The new "required field" statepublic boolean isImmediate()
EditableValueHolderReturn the "immediate" state for this component.
isImmediate in interface EditableValueHolderpublic void setImmediate(boolean immediate)
EditableValueHolderSet the "immediate" state for this component.  When
 set to true, the component's value will be converted
 and validated immediately in the Apply Request Values
 phase, and ValueChangeEvents will be delivered
 in that phase as well.  The default value for this
 property must be false.
setImmediate in interface EditableValueHolderimmediate - The new "immediate" statepublic MethodBinding getValidator()
getValidators() should be used instead.Return a MethodBinding pointing at a
 method that will be called during Process Validations
 phase of the request processing lifecycle, to validate the current
 value of this component.
getValidator in interface EditableValueHolderpublic void setValidator(MethodBinding validatorBinding)
addValidator(javax.faces.validator.Validator) instead, obtaining the
             argument Validator by creating an instance of MethodExpressionValidator.Set a MethodBinding pointing at a
 method that will be called during Process Validations
 phase of the request processing lifecycle, to validate the current
 value of this component.
Any method referenced by such an expression must be public, with
 a return type of void, and accept parameters of type
 FacesContext, UIComponent, and Object.
setValidator in interface EditableValueHoldervalidatorBinding - The new MethodBinding instancepublic MethodBinding getValueChangeListener()
EditableValueHolderIf EditableValueHolder.setValueChangeListener(javax.faces.el.MethodBinding) was not previously called
 for this instance, this method must return null.  If
 it was called, this method must return the exact
 MethodBinding instance that was passed to EditableValueHolder.setValueChangeListener(javax.faces.el.MethodBinding).
getValueChangeListener in interface EditableValueHolderpublic void setValueChangeListener(MethodBinding valueChangeListener)
addValueChangeListener(javax.faces.event.ValueChangeListener) instead, obtaining the
             argument ValueChangeListener by creating an instance of MethodExpressionValueChangeListener.Wrap the argument valueChangeMethod in an
 implementation of ValueChangeListener
 and store it in the internal data structure that backs the EditableValueHolder.getValueChangeListeners() method, taking care to over-write any
 instance that was stored by a previous call to
 setValueChangeListener.
This argument method will be called during the Process
 Validations or Apply Request Values phases
 (depending on the value of the immediate
 property). 
Any method referenced by such an expression must be public,
 with a return type of void, and accept a parameter
 of type ValueChangeEvent.
setValueChangeListener in interface EditableValueHoldervalueChangeListener - The new method binding instancepublic void processDecodes(FacesContext context)
Specialized decode behavior on top of that provided by the
 superclass.  In addition to the standard
 processDecodes behavior inherited from UIComponentBase, calls validate() if the the
 immediate property is true; if the component is
 invalid afterwards or a RuntimeException is thrown,
 calls FacesContext.renderResponse().  
processDecodes in class UIComponentBasecontext - FacesContext for the request we are processingNullPointerException - if context
  is nullpublic void processValidators(FacesContext context)
In addition to the standard processValidators behavior
 inherited from UIComponentBase, calls validate()
 if the immediate property is false (which is the
 default);  if the component is invalid afterwards, calls
 FacesContext.renderResponse().
 If a RuntimeException is thrown during
 validation processing, calls FacesContext.renderResponse()
 and re-throw the exception.
 
processValidators in class UIComponentBasecontext - FacesContext for the request we are processingNullPointerException - if context
  is nullpublic void processUpdates(FacesContext context)
In addition to the standard processUpdates behavior
 inherited from UIComponentBase, calls
 updateModel().
 If the component is invalid afterwards, calls
 FacesContext.renderResponse().
 If a RuntimeException is thrown during
 update processing, calls FacesContext.renderResponse()
 and re-throw the exception.
 
processUpdates in class UIComponentBasecontext - FacesContext for the request we are processingNullPointerException - if context
  is nullpublic void decode(FacesContext context)
UIComponentDecode any new state of this UIComponent from the
 request contained in the specified FacesContext, and store
 this state as needed.
During decoding, events may be enqueued for later processing
 (by event listeners who have registered an interest),  by calling
 queueEvent().
decode in class UIComponentBasecontext - FacesContext for the request we are processingNullPointerException - if context
  is nullpublic void updateModel(FacesContext context)
Perform the following algorithm to update the model data
 associated with this UIInput, if any, as appropriate.
valid property of this component is
 false, take no further action.localValueSet property of this component is
 false, take no further action.ValueExpression for value exists,
 take no further action.setValue() method of the ValueExpression
 to update the value that the ValueExpression points at.setValue() method returns successfully:
 setValue() method call fails:
 addMessage()
 on the specified FacesContext instance.valid property of this UIInput
 to false.context - FacesContext for the request we are processingNullPointerException - if context
                              is nullpublic void validate(FacesContext context)
Perform the following algorithm to validate the local value of
 this UIInput.
getSubmittedValue().
 If this returns null, exit without further processing.  (This
 indicates that no value was submitted for this component.)getConvertedValue(javax.faces.context.FacesContext, java.lang.Object).validateValue(javax.faces.context.FacesContext, java.lang.Object).valid property of this component is still
 true, retrieve the previous value of the component
 (with getValue()), store the new local value using
 setValue(), and reset the submitted value to
 null.  If the local value is different from
 the previous value of this component, fire a
 ValueChangeEvent to be broadcast to all interested
 listeners.Application components implementing UIInput that wish to
 perform validation with logic embedded in the component should perform
 their own correctness checks, and then call the
 super.validate() method to perform the standard
 processing described above.
context - The FacesContext for the current requestNullPointerException - if context
                              is nullprotected Object getConvertedValue(FacesContext context, Object newSubmittedValue) throws ConverterException
Convert the submitted value into a "local value" of the appropriate data type, if necessary. Employ the following algorithm to do so:
Renderer is present, call
 getConvertedValue() to convert the submitted
 value.Renderer is present, and the submitted
 value is a String, locate a Converter as follows:
 getConverter() returns a non-null Converter,
 use that instance.value exists,
 call getType() on it.
 null, assume the output
 type is String and perform no conversion.Application.createConverter(Class)
 to locate any registered Converter capable of
 converting data values of the specified type.Converter instance was located, call its
 getAsObject() method to perform the conversion.
 If conversion fails:
 addMessage() method on the
 FacesContext.valid property
 on this component to false This method can be overridden by subclasses for more specific behavior.
ConverterExceptionprotected void validateValue(FacesContext context, Object newValue)
Set the "valid" property according to the below algorithm.
valid property on this component is still
 true, and the required property is also
 true, ensure that the local value is not empty (where "empty" is
 defined as null or a zero-length String.  If the local
 value is empty:
 addMessage() method on the FacesContext
 instance for the current request.  If the getRequiredMessage()
 returns non-null, use the value as the summary
 and detail in the FacesMessage that
 is enqueued on the FacesContext, otherwise
 use the message for the REQUIRED_MESSAGE_ID.
 valid property on this component to
 false.valid property on this component is still
 true, and the local value is not empty, call the
 validate() method of each Validator
 registered for this UIInput, followed by the method
 pointed at by the validatorBinding property (if any).
 If any of these validators or the method throws a
 ValidatorException, catch the exception, add
 its message (if any) to the FacesContext, and set
 the valid property of this component to false.protected boolean compareValues(Object previous, Object value)
Return true if the new value is different from the
 previous value.
previous - old value of this component (if any)value - new value of this component (if any)public void addValidator(Validator validator)
addValidator in interface EditableValueHoldervalidator - The Validator to addNullPointerException - if validator
                              is nullpublic Validator[] getValidators()
Return the set of registered Validators for this
 UIInput instance.  If there are no registered validators,
 a zero-length array is returned.
getValidators in interface EditableValueHolderpublic void removeValidator(Validator validator)
Remove a Validator instance from the set associated with
 this UIInput, if it was previously associated.
 Otherwise, do nothing.
removeValidator in interface EditableValueHoldervalidator - The Validator to removepublic void addValueChangeListener(ValueChangeListener listener)
Add a new ValueChangeListener to the set of listeners
 interested in being notified when ValueChangeEvents occur.
addValueChangeListener in interface EditableValueHolderlistener - The ValueChangeListener to be addedNullPointerException - if listener
                              is nullpublic ValueChangeListener[] getValueChangeListeners()
Return the set of registered ValueChangeListeners for this
 UIInput instance.  If there are no registered listeners,
 a zero-length array is returned.
getValueChangeListeners in interface EditableValueHolderpublic void removeValueChangeListener(ValueChangeListener listener)
Remove an existing ValueChangeListener (if any) from the
 set of listeners interested in being notified when
 ValueChangeEvents occur.
removeValueChangeListener in interface EditableValueHolderlistener - The ValueChangeListener to be removedNullPointerException - if listener
                              is nullpublic Object saveState(FacesContext context)
StateHolder Gets the state of the instance as a
 Serializable Object.
If the class that implements this interface has references to
 instances that implement StateHolder (such as a
 UIComponent with event handlers, validators, etc.)
 this method must call the StateHolder.saveState(javax.faces.context.FacesContext) method on all those
 instances as well.  This method must not save the state
 of children and facets. That is done via the StateManager
This method must not alter the state of the implementing object. In other words, after executing this code:
 Object state = component.saveState(facesContext);
 
component should be the same as before executing
 it.
The return from this method must be Serializable
saveState in interface StateHoldersaveState in class UIOutputpublic void restoreState(FacesContext context, Object state)
StateHolderPerform any processing required to restore the state from the entries in the state Object.
If the class that implements this interface has references to
 instances that also implement StateHolder (such as a
 UIComponent with event handlers, validators, etc.)
 this method must call the StateHolder.restoreState(javax.faces.context.FacesContext, java.lang.Object) method on all those
 instances as well. 
restoreState in interface StateHolderrestoreState in class UIOutputCopyright © 2012 JBoss by Red Hat. All Rights Reserved.