Validators and Converters
In ADF UIX there was no distinction between converters and validators.
In JSF a converter is used to convert an object to and from a String for rendering. For example to convert a string like "5/25/95" to a java.util.Date object and back.
After a converter has converted a string value to the appropriate object, JSF Validators are then run to check that the object is "correct" in some way. For example it might check that the java.util.Date object is within some data range.
In JSF, converters can be attached to any component that implements ValueHolder, while validators can attached to any component that implements EditableValueHolder. In most cases ADF Faces converters and validators support client side conversion and validation, which is run when the form is submitted.
Converters
-
<
color
>
client-side validator is now
<
af:convertColor
>
and uses transparentAllowed instead of allowsTransparent
-
<
date
>
use spec tag
<
f:convertDateTime
>
.
In addition there is a validator
<
af:validateDateTimeRange
>
Validators
-
<
regExp
>
is now
<
af:validateRegExp
>
-
<
byteLength
>
is now
<
af:validateByteLength
>
and uses maximum instead of maximumBytes
-
<
utf8Length
>
use
<
af:validateByteLength
>
and set "encoding" to "UTF-8"
Components
|
[Common UIX attributes
]
|
[Common ADF Faces attributes
]
|
Notes
|
|
New attributes:
|
|
|
attributeChangeListener
|
a method reference to an attribute change listener
|
|
|
binding
|
a binding reference to store the component instance
|
|
|
partialTriggers
|
a list of IDs of components on which to listen for updates. A partial
update of any of the components in this list (the master components) will
trigger a partial update of component on which this list is set (the dependent
component).
|
this attribute is the mirror of the old partialTargets attribute
|
|
Attributes:
|
|
|
formName
|
|
Removed - components will submit the form they are enclosed in
|
|
formSubmitted
|
|
Removed - components will submit the form they are enclosed in
|
|
onBlur
|
onblur
|
|
|
onChange
|
onchange
|
|
|
onClick
|
onclick
|
|
|
onDoubleClick
|
ondblclick
|
|
|
onFocus
|
onfocus
|
|
|
onKeyDown
|
onkeydown
|
|
|
onKeyPress
|
onkeypress
|
|
|
onKeyUp
|
onkeyup
|
|
|
onMouseDown
|
onmousedown
|
|
|
onMouseMove
|
onmousemove
|
|
|
onMouseOut
|
onmouseout
|
|
|
onMouseOver
|
onmouseover
|
|
|
onMouseUp
|
onmouseup
|
|
|
parameters
|
Removed
|
The entire enclosing form is always submitted, no parameters should be necessary. In the rare cases where other client side values need to be passed back to the server, use inputHidden components.
|
|
partialRenderMode
|
|
Removed - All partial events update the master component (self), and any
other dependent components listening on it (multiple). A component may listen
on another component by listing it in the partialTriggers attribute.
|
|
partialTargets
|
|
Removed - instead of listing the dependent components (components that
should be updated when the given master component gets a partial event) on
each master component, the dependent component now lists all master
components, to which it wishes to listen, in its partialTriggers attribute.
|
|
prompt
|
label
|
|
|
promptAndAccessKey
|
labelAndAccessKey
|
|
|
addTableRow
|
Not Implemented Yet
|
Notes
|
|
Derived from:
base
|
|
|
applicationSwitcher
|
menuChoice
|
Notes
|
|
Derived from:
optionContainer
|
|
|
Attributes:
|
|
|
destination
|
|
Removed - components will submit the form they are enclosed in
|
|
name
|
|
Removed - use id instead
|
|
selectedIndex
|
|
Removed - use selected on commandMenuItem children
|
|
selectedValue
|
|
Removed - use selected on commandMenuItem children
|
|
selection
|
|
Removed - use selected on commandMenuItem children
|
|
unvalidated
|
|
Removed - use "immediate" on commandMenuItem children
|
|
body
|
body
|
Notes
|
|
Derived from:
base
|
|
|
Attributes:
|
|
|
dirty
|
|
Removed at this time.
|
|
navigationExcludeNames
|
|
Removed at this time.
|
|
navigationFormNames
|
|
Removed at this time.
|
|
onNavigate
|
|
Removed at this time.
|
|
onLoad
|
onload
|
|
|
onLoad
|
onunload
|
|
|
Additional notes:
|
|
body is in the afh: namespace, not the af: namespace. The tag
name is
<
afh:body
>
|
|
borderLayout
|
panelBorder
|
Notes
|
|
Derived from:
base
|
|
|
boundText
|
N/A
|
Notes
|
|
Derived from:
uinode
|
|
|
Additional notes:
|
|
Removed - use outputText instead.
|
|
breadCrumbs
|
menuPat
h
|
Notes
|
|
Derived from:
linkContainer
|
|
|
browseMenu
|
treeTOC
|
Notes
|
|
Derived from:
base
|
|
|
Additional notes:
|
|
Not implemented yet.
|
|
bulletedList
|
panelList
|
Notes
|
|
Derived from:
base
|
|
|
New Attributes:
|
|
|
maxColumns
|
Sets the maximum number of columns to show.
|
|
|
Additional notes:
|
|
rows now defaults to value Integer.MAX_VALUE, which was 10 previously.
|
|
button
|
goButton
|
Notes
|
|
Derived from:
link
|
|
|
cellFormat
|
cellFormat
|
Notes
|
|
Derived from:
base
|
|
|
Additional notes:
|
|
cellFormat is in the afh: namespace, not the af: namespace. The tag
name is
<
afh:cellFormat
>
|
|
checkBox
|
selectBooleanCheckbox
|
Notes
|
|
Derived from:
formElement
|
|
|
New Attributes:
|
|
|
autoSubmit
|
Use instead of primaryClientAction. If set to TRUE,
the component will automatically submit the enclosing form when the
checkbox is clicked.
|
|
|
value
|
a value binding expression used to retrieve a value dynamically from a model tier
object during Render Response Phase. In addition, the value binding is used
during Update Model Values phase (on the subsequent request) to push the
possibly update component value back to the model tier object.
|
This is used instead of the value and selectedValue attributes.
|
|
Attributes:
|
|
|
checked
|
selected
|
|
|
name
|
|
Removed - use id instead.
|
|
primaryClientAction
|
|
Removed - use autoSubmit instead
|
|
selectedValue
|
|
Removed - use the new value attribute instead
|
|
value
|
|
Removed - use the new value attribute instead. The value binding is used
during Update Model Values phase (on the subsequent request) to push the
possibly updated component value back to the model tier object.
|
|
choice
|
selectOneChoice
|
Notes
|
|
Derived from:
optionContainer
|
|
|
New attributes:
|
|
|
autoSubmit
|
Use instead of primaryClientAction. If set to TRUE,
the component will automatically submit the enclosing form when a selection
is made.
|
|
|
value
|
a value binding expression used to retrieve a value dynamically from a model tier
object during Render Response Phase. In addition, the value binding is used
during Update Model Values phase (on the subsequent request) to push the
possibly update component value back to the model tier object.
|
use instead of selectedValue.
|
|
Attributes:
|
|
|
name
|
|
Removed - use id instead.
|
|
primaryClientAction
|
|
Removed - use autoSubmit instead
|
|
selectedIndex
|
|
Removed - use value instead.
|
|
selectedValue
|
|
Removed - use value instead.
|
|
selection
|
|
Removed - use value instead.
|
|
colorField
|
selectInputColor
|
Notes
|
|
Derived from: textInput
|
|
|
New attributes:
|
|
|
validator
|
A method reference to a validator method.
|
|
|
Attributes:
|
|
|
destination
|
|
Removed - hence no support for custom color pi
cker at the moment.
|
|
name
|
|
Removed - use 'id' instead.
|
|
paletteId
|
chooseId
|
The id of the inline chooseColor component which can be used to update the Color value for this selectInputColor.
|
|
colorPalette
|
chooseColor
|
Notes
|
|
Derived from: base
|
|
|
New attributes:
|
|
|
colorData
|
The list of colors for the component.
|
|
|
customColorData
|
The list of custom colors for the component.
|
|
|
Named children:
|
Facets:
|
|
|
colorData
|
|
Removed - use the colorData attribute instead.
|
|
customColorData
|
|
Removed - use the customColorData attribute instead.
|
|
column
|
column
|
Notes
|
|
Derived from:
base
|
|
|
New attributes:
|
|
|
sortProperty
|
The name of the property to sort by.
|
|
sortable
|
Whether or not to enable sorting of this column.
|
|
width
|
|
formerly on columnFormat
|
|
noWrap
|
|
formerly on columnFormat as "cellNoWrapFormat"
|
|
headerNoWrap
|
|
formerly on columnHeaderFormat as "cellNoWrapFormat"
|
|
gridVisible
|
|
formerly on columnFormat as "displayGrid"
|
|
formatType
|
|
formerly on columnFormat as "columnDataFormat"
|
|
bandingShade
|
|
formerly on columnFormat as "bandingShade"
|
|
Attributes:
|
|
|
usesSeparateRows
|
isSeparateRows
|
|
|
columnFormat
|
|
Removed - use the individual attrs on this tag.
|
|
columnHeaderFormat
|
|
Removed - use the individual attrs on this tag.
|
|
Named children:
|
Facets:
|
|
|
columnHeader
|
header
|
|
|
columnGroup
|
column
|
Notes
|
|
Derived from:
base
|
|
|
Additional notes:
|
|
Replace with
column
|
|
contentContainer
|
panelBox
|
Notes
|
|
Derived from:
base
|
|
|
contentFooter
|
N/A
|
Notes
|
|
Derived from:
base
|
|
|
Additional notes:
|
|
Removed - use panelPage
|
|
dateField
|
selectInputDate
|
Notes
|
|
Derived from:
textInput
|
|
|
New Attributes:
|
|
|
label
|
|
|
|
labelAndAccessKey
|
|
|
|
simple
|
|
|
|
validator
|
A method reference to a validator method.
|
|
|
Attributes:
|
|
|
destination
|
|
Removed - hence no support for custom date picker at the moment.
|
|
maxValue
|
|
Removed - attach DateTimeRangeValidator
|
|
minValue
|
|
Removed - attach DateTimeRangeValidator (validateDateTimeRange tag)
|
|
name
|
|
Removed - use id instead
|
|
pickerId
|
chooseId
|
|
|
displayException
|
N/A
|
Notes
|
|
Derived from:
uinode
|
|
|
Additional notes:
|
|
Removed - use JSTL's
<
c:catch
>
instead.
|
|
fileUpload
|
inputFile
|
Notes
|
|
Derived from:
base
|
|
|
New attributes:
|
|
|
valueChangeListener
|
|
|
|
immediate
|
|
|
|
Additional notes:
|
|
Set simple="true" for fileUpload (not messageFileUpload)
|
|
flowLayout
|
panelGroup
|
Notes
|
|
Derived from:
base
|
|
|
New attributes:
|
|
|
layout
|
|
Defaults to a flowLayout. You can
also explicitly set to "default" for a flowLayout.
|
|
frameBorderLayout
|
frameBorderLayout
|
Notes
|
|
Derived from:
base
|
|
|
Additional notes:
|
|
frameBorderLayout is in the afh: namespace, not the af: namespace. The tag
name is
<
afh:frameBorderLayout
>
|
|
form
|
form
|
Notes
|
|
Derived from:
|
base
|
|
Attributes:
|
|
|
onSubmit
|
onsubmit
|
|
|
method
|
|
Removed - always POST
|
|
destination
|
|
Removed - always posts back to originating page
|
|
formattedText
|
outputFormatted
|
Notes
|
|
Derived from: base
|
|
|
Attributes:
|
|
|
text
|
value
|
|
|
formParameter
|
N/A
|
Notes
|
|
Derived from:
base
|
|
|
Additional notes:
|
|
Removed
|
|
formValue
|
inputHidden
|
Notes
|
|
Derived from:
|
base
|
|
New attributes:
|
|
|
new name
|
valueChangeListener
|
|
|
immediate
|
valueChangeListener
|
|
|
Attributes:
|
|
|
name
|
id
|
|
|
globalButton
|
commandMenuItem
|
Notes
|
|
Derived from:
link
|
|
|
New attributes:
|
|
|
action
|
a reference to an action method sent by the command component, or the static outcome of an action
|
|
|
actionListener
|
a method reference to an action listener
|
|
|
Attributes:
|
|
|
destination
|
|
Removed - use action/actionListener instead
|
|
longDest
|
|
Removed
|
|
source
|
|
Removed - use icon instead
|
|
targetFrame
|
|
Removed
|
|
globalButtonBar
|
menuButtons
|
Notes
|
|
Derived from:
base
|
|
|
globalHeader
|
menuBar
|
Notes
|
|
Derived from:
linkContainer
|
|
|
Attributes:
|
|
|
selectedIndex
|
|
Removed - use selected on commandLink children instead.
|
|
text
|
|
Removed - use a title on panelPage instead
|
|
head
|
head
|
Notes
|
|
Derived from:
base
|
|
|
header
|
panelHeader
|
Notes
|
|
Derived from:
base
|
|
|
hGrid
|
treeTable
|
Notes
|
|
Derived from:
base
|
|
|
New attributes:
|
|
|
focusListener
|
listener interested in FocusEvents
|
|
rangeChangeListener
|
listener interested in RangeChangeEvents
|
|
focusPath
|
The path to the tree node that has the current focus
|
|
Attributes:
|
|
|
tableFormat
|
banding
|
use "banding" and "bandingInterval"
|
|
columnFormats
|
|
Removed - use the corresponding attrs on
<
column
>
|
|
columnHeaderFormats
|
|
Removed - use the corresponding attrs on
<
column
>
|
|
columnHeaderData
|
|
Removed - use the corresponding attrs on
<
column
>
|
|
destination
|
|
Removed
|
|
formSubmitted
|
|
Removed
|
|
unvalidated
|
|
Removed
|
|
proxied
|
|
Removed
|
|
nameTransformed
|
|
Removed
|
|
proxy
|
|
Removed
|
|
treeData
|
value
|
|
|
alternateText
|
emptyText
|
|
|
childBlockSize
|
rowsByDepth
|
|
|
Named children:
|
Facets:
|
|
|
columnHeaderStamp
|
|
Use "header" on
<
column
>
|
|
tableActions
|
actions
|
|
|
tableSelection
|
selection
|
|
|
hideShow
|
showDetail
|
Notes
|
|
Derived from:
base
|
|
|
Attributes:
|
|
|
destination
|
|
Removed
|
|
disclosed
|
|
Should no longer be databound; it will be handled automatically
by the showDetail
|
|
unvalidated
|
immediate
|
|
|
Additional notes:
|
|
|
|
hideShowHeader
|
showDetailHeader
|
Notes
|
|
Derived from:
base
|
|
|
Attributes:
|
|
|
destination
|
|
Removed
|
|
disclosed
|
|
Should no longer be databound; it will be handled automatically
by the showDetail
|
|
unvalidated
|
immediate
|
|
|
Additional notes:
|
|
|
|
html
|
html
|
Notes
|
|
Derived from:
base
|
|
|
Named children:
|
Facets:
|
|
|
metaContainer
|
|
Removed - simply add as standard child (but before any body!)
|
|
Additional notes:
|
|
html is in the afh: namespace, not the af: namespace. The tag
name is
<
afh:html
>
|
|
icon
|
objectIcon
|
Notes
|
|
Derived from: base
|
|
|
iconKey
|
objectLegend
|
Notes
|
|
Derived from: base
|
|
|
image
|
objectImage
|
Notes
|
|
Derived from: base
|
|
|
Attributes:
|
|
|
autoFlip
|
|
Removed
|
|
destination
|
|
Removed - wrap objectImage inside of a commandLink or goLink.
|
|
hAlign
|
align
|
|
|
primaryClientAction
|
|
Removed
|
|
text
|
|
Removed
|
|
importScript
|
importScript
|
Notes
|
|
Derived from:
base
|
|
|
include
|
N/A
|
Notes
|
|
Derived from:
uinode
|
|
|
Additional notes:
|
|
Removed - use jsp:include for including files, and the "binding" attribute
for including programatically constructed components.
|
|
inlineDatePicker
|
chooseDate
|
Notes
|
|
Derived from:
base
|
|
|
inlineMessage
|
N/A
|
Notes
|
|
Derived from:
base
|
|
|
Additional notes:
|
|
Removed - use panelLabelAndMessage instead - see messageLayout
|
|
labeledFieldLayout
|
N/A
|
Notes
|
|
Derived from:
base
|
|
|
Additional notes:
|
|
Removed - use panelForm instead - see messageComponentLayout
|