- All Implemented Interfaces:
AttachedObjectHandler,FaceletHandler,ValueHolderAttachedObjectHandler
The <o:converter> is a taghandler that extends the standard <f:converter> tag family with support for deferred value
expressions in all attributes. In other words, the converter attributes are not evaluated anymore on a per view build time basis, but just on every access
like as with UI components and bean properties. This has among others the advantage that they can be evaluated on a per-iteration basis inside an iterating
component, and that they can be set on a custom converter without needing to explicitly register it in a tagfile.
Usage
When you specify for example the standard <f:convertDateTime> by converterId="jakarta.faces.DateTime", then you'll be able to
use all its attributes such as pattern and locale as per its documentation, but then with the possibility to supply deferred value
expressions.
<o:converter converterId="jakarta.faces.DateTime" pattern="#{item.pattern}" locale="#{item.locale}" />
The converter ID of all standard Faces converters can be found in
their javadocs. First go to the javadoc of the
class of interest, then go to CONVERTER_ID in its field summary and finally click the Constant Field Values link to see the value.
JSF 2.3 compatibility
The <o:converter> is currently not compatible with converters which are managed via the managed=true attribute set on the
FacesConverter annotation, at least not when using Mojarra. Internally, the converters are wrapped in another instance which doesn't have the needed
setter methods specified. In order to get them to work with <o:converter>, the managed=true attribute needs to be removed, so
that OmniFaces ConverterManager will automatically manage them.
- Author:
- Bauke Scholtz
- See Also:
-
DeferredTagHandlerHelper
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprotected static classSo that we can have a serializable converter. -
Field Summary
Fields inherited from class jakarta.faces.view.facelets.DelegatingMetaTagHandler
delegateFactoryFields inherited from class jakarta.faces.view.facelets.TagHandler
nextHandler, tag, tagId -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidapply(FaceletContext context, UIComponent parent) Create aConverterbased on thebindingand/orconverterIdattributes as per the standard Faces<f:converter>implementation and collect the render time attributes.getTagAttribute(String name) protected TagHandlerDelegatebooleanisDisabled(FaceletContext context) Methods inherited from class jakarta.faces.view.facelets.ConverterHandler
getConverterIdMethods inherited from class jakarta.faces.view.facelets.FaceletsAttachedObjectHandler
applyAttachedObject, getAttachedObjectHandlerHelper, getForMethods inherited from class jakarta.faces.view.facelets.DelegatingMetaTagHandler
applyNextHandler, createMetaRuleset, getBinding, getTag, getTagId, setAttributesMethods inherited from class jakarta.faces.view.facelets.TagHandler
getAttribute, getRequiredAttribute, toStringMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface jakarta.faces.view.AttachedObjectHandler
applyAttachedObject, getFor
-
Constructor Details
-
Converter
The constructor.- Parameters:
config- The converter config.
-
-
Method Details
-
apply
Create aConverterbased on thebindingand/orconverterIdattributes as per the standard Faces<f:converter>implementation and collect the render time attributes. Then create an anonymousConverterimplementation which wraps the createdConverterand delegates the methods to it after setting the render time attributes. Finally set the anonymous implementation on the parent component.- Specified by:
applyin interfaceFaceletHandler- Overrides:
applyin classDelegatingMetaTagHandler- Parameters:
context- The involved facelet context.parent- The parent component to set theConverteron.- Throws:
IOException- If something fails at I/O level.
-
getTagAttribute
- Overrides:
getTagAttributein classDelegatingMetaTagHandler
-
getTagHandlerDelegate
- Overrides:
getTagHandlerDelegatein classConverterHandler
-
isDisabled
- Overrides:
isDisabledin classDelegatingMetaTagHandler
-