Class UIImportConstants
- All Implemented Interfaces:
PartialStateHolder,StateHolder,TransientStateHolder,ComponentSystemEventListener,FacesListener,SystemEventListenerHolder,EventListener
UIImportConstants imports a mapping of all constant field values of the given type in the current view.
The ViewDeclarationLanguage implementation must cause an instance of this component to be
placed in the view for each occurrence of an <f:importConstants /> element placed inside of an
<f:metadata /> element. The user must place <f:metadata /> as a direct child of
the UIViewRoot. The ViewMetadata.createMetadataView(jakarta.faces.context.FacesContext) must
take care of actual task of importing the constants.
Instances of this class participate in the regular Jakarta Server Faces lifecycle, including on Ajax requests.
The purpose of this component is to provide a mapping of all constant field values of the given type in the current
view. Constant field values are all public static final fields of the given type. The map key represents
the constant field name as String. The map value represents the actual constant field value. This works
for classes, interfaces and enums.
Usage
The below constant fields:
package com.example;
public class Foo {
public static final String FOO1 = "foo1";
public static final String FOO2 = "foo2";
}
package com.example;
public interface Bar {
public static final String BAR1 = "bar1";
public static final String BAR2 = "bar2";
}
package com.example;
public enum Baz {
BAZ1, BAZ2;
}
Can be imported as below:
<f:metadata>
<f:importConstants type="com.example.Foo" />
<f:importConstants type="com.example.Bar" var="Barrr" />
<f:importConstants type="com.example.Baz" />
</f:metadata>
And can be referenced as below:
#{Foo.FOO1}, #{Foo.FOO2}, #{Barrr.BAR1}, #{Barrr.BAR2}, #{Baz.BAZ1}, #{Baz.BAZ2}
<h:selectOneMenu value="#{bean.baz}" >
<f:selectItems value="#{Baz}" />
</h:selectOneMenu>
- Since:
- 2.3
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final StringThe standard component family for this component.static final StringThe standard component type for this component.Fields inherited from class jakarta.faces.component.UIComponent
ATTRS_WITH_DECLARED_DEFAULT_VALUES, BEANINFO_KEY, bindings, COMPOSITE_COMPONENT_TYPE_KEY, COMPOSITE_FACET_NAME, CURRENT_COMPONENT, CURRENT_COMPOSITE_COMPONENT, FACETS_KEY, HONOR_CURRENT_COMPONENT_ATTRIBUTES_PARAM_NAME, VIEW_LOCATION_KEY -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionReturn the identifier of the component family to which this component belongs.getType()Returns the fully qualified name of the type to import the constant field values for.getVar()Returns name of request scope attribute under which constants will be exposed as a Map.voidSets the fully qualified name of the type to import the constant field values for.voidsetValueExpression(String name, ValueExpression binding) Set theValueExpressionused to calculate the value for the specified attribute or property name, if any.voidSets name of request scope attribute under which constants will be exposed as a Map.Methods inherited from class jakarta.faces.component.UIComponentBase
addClientBehavior, addFacesListener, broadcast, clearInitialState, decode, encodeBegin, encodeChildren, encodeEnd, findComponent, getAttributes, getChildCount, getChildren, getClientBehaviors, getClientId, getDefaultEventName, getEventNames, getFacesContext, getFacesListeners, getFacet, getFacetCount, getFacets, getFacetsAndChildren, getId, getListenersForEventClass, getParent, getPassThroughAttributes, getRenderer, getRendererType, getRendersChildren, getValueBinding, invokeOnComponent, isRendered, isTransient, markInitialState, processDecodes, processRestoreState, processSaveState, processUpdates, processValidators, queueEvent, removeFacesListener, restoreAttachedState, restoreState, saveAttachedState, saveState, setId, setParent, setRendered, setRendererType, setTransient, setValueBinding, subscribeToEvent, unsubscribeFromEventMethods inherited from class jakarta.faces.component.UIComponent
encodeAll, getClientId, getCompositeComponentParent, getContainerClientId, getCurrentComponent, getCurrentCompositeComponent, getNamingContainer, getPassThroughAttributes, getResourceBundleMap, getStateHelper, getStateHelper, getTransientStateHelper, getTransientStateHelper, getValueExpression, initialStateMarked, isCompositeComponent, isInView, isVisitable, popComponentFromEL, processEvent, pushComponentToEL, restoreTransientState, saveTransientState, setInView, visitTree
-
Field Details
-
COMPONENT_TYPE
The standard component type for this component.
- See Also:
-
COMPONENT_FAMILY
The standard component family for this component.
- See Also:
-
-
Constructor Details
-
UIImportConstants
public UIImportConstants()Create a new
UIImportConstantsinstance with renderer type set tonull.
-
-
Method Details
-
getFamily
Description copied from class:UIComponentReturn the identifier of the component family to which this component belongs. This identifier, in conjunction with the value of the
rendererTypeproperty, may be used to select the appropriateRendererfor this component instance. Note this method should NOT returnnull- Specified by:
getFamilyin classUIComponent- Returns:
- the component family (not null).
-
getType
Returns the fully qualified name of the type to import the constant field values for.
- Returns:
- The fully qualified name of the type to import the constant field values for.
-
setType
Sets the fully qualified name of the type to import the constant field values for.
- Parameters:
type- The fully qualified name of the type to import the constant field values for.
-
getVar
Returns name of request scope attribute under which constants will be exposed as a Map.
- Returns:
- Name of request scope attribute under which constants will be exposed as a Map.
-
setVar
Sets name of request scope attribute under which constants will be exposed as a Map.
- Parameters:
var- Name of request scope attribute under which constants will be exposed as a Map.
-
setValueExpression
Set the
ValueExpressionused to calculate the value for the specified attribute or property name, if any. If aValueExpressionis set for thevarproperty, throw an illegal argument exception.- Overrides:
setValueExpressionin classUIComponent- Parameters:
name- Name of the attribute or property for which to set aValueExpressionbinding- TheValueExpressionto set, ornullto remove any currently setValueExpression- Throws:
IllegalArgumentException- Ifnameis one ofid,parent, orvar.NullPointerException- Ifnameisnull.
-