T
- The type of the value.public class PathParam<T> extends Param<T>
<o:pathParam>
is a component that extends the OmniFaces Param
to support
MultiViews
feature of FacesViews
. It is done by rendering the supplied parameters of such components
as <h:link>
and <h:button>
among others as path parameters and not as
query parameters as otherwise will be produced by <o:param>
and <f:param>
tags.
The component has built-in support for a Converter
to convert the supplied value to string by usual means via
the converter
attribute of the tag, or the nested <f:converter>
tag, or just automatically
if a converter is already registered for the target class via @FacesConverter(forClass)
.
This component doesn't support returning encoded output of its children as parameter value in case no value is present.
This feature is provided by Param
component instead.
Also, the name attribute must not be specified for this component as it already evaluates to a predefined one.
This component is used to create bookmarkable URLs via standard outcome target components that take into account
<o:pathParam>
tags nested in the components. The path parameters will be rendered
in the order they were declared for a view id that is defined as a multi view and if the view was
not defined as a multi view then they won't be rendered at all. Additionally, declaring path parameters
for a non-multi view will be logged as a warning and a faces warning message will be added for any
stage different from Production
.
In the following example the link to the multi view page will be rendered with two path parameters:
<h:link value="Link" outcome="multiview-supported-path"> <o:pathParam value="first" /> <o:pathParam value="second" /> </h:link>The code above will be rendered as:
<a id="..." name="..." href="/context-path/multiview-supported-path/first/second">Link</a>
.
The path parameters will be available via @Inject @Param(pathIndex=0) private String first;
and
@Inject @Param(pathIndex=1) private String second;
the usual way.FacesViews
,
FacesViewsViewHandler.getBookmarkableURL(FacesContext, String, java.util.Map, boolean)
Modifier and Type | Field and Description |
---|---|
static String |
COMPONENT_TYPE |
static String |
PATH_PARAM_NAME_ATTRIBUTE_VALUE |
COMPONENT_FAMILY
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 and Description |
---|
PathParam() |
Modifier and Type | Method and Description |
---|---|
String |
getName()
Returns the name of the parameter.
|
String |
getValue()
Returns the value of the parameter as
String . |
void |
setName(String name) |
encodeChildren, getConverter, getLocalValue, getRendersChildren, setConverter
getFamily, isDisable, setDisable, setValue
addClientBehavior, addFacesListener, broadcast, clearInitialState, decode, encodeBegin, encodeEnd, findComponent, getAttributes, getChildCount, getChildren, getClientBehaviors, getClientId, getDefaultEventName, getEventNames, getFacesContext, getFacesListeners, getFacet, getFacetCount, getFacets, getFacetsAndChildren, getId, getListenersForEventClass, getParent, getPassThroughAttributes, getRenderer, getRendererType, getValueBinding, invokeOnComponent, isRendered, isTransient, markInitialState, processDecodes, processRestoreState, processSaveState, processUpdates, processValidators, queueEvent, removeFacesListener, restoreAttachedState, restoreState, saveAttachedState, saveState, setId, setParent, setRendered, setRendererType, setTransient, setValueBinding, subscribeToEvent, unsubscribeFromEvent
encodeAll, getClientId, getCompositeComponentParent, getContainerClientId, getCurrentComponent, getCurrentCompositeComponent, getNamingContainer, getPassThroughAttributes, getResourceBundleMap, getStateHelper, getStateHelper, getTransientStateHelper, getTransientStateHelper, getValueExpression, initialStateMarked, isCompositeComponent, isInView, isVisitable, popComponentFromEL, processEvent, pushComponentToEL, restoreTransientState, saveTransientState, setInView, setValueExpression, visitTree
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
setValue
public static final String COMPONENT_TYPE
public static final String PATH_PARAM_NAME_ATTRIBUTE_VALUE
public String getValue()
ParamHolder
String
. If the converter is set, or if any converter is available by
Application.createConverter(Class)
, passing the value's class, then return the result of
Converter.getAsString(javax.faces.context.FacesContext, javax.faces.component.UIComponent, Object)
,
otherwise return the Object.toString()
of the value.getValue
in interface ValueHolder
getValue
in interface ParamHolder<T>
getValue
in class Param<T>
String
.Converter.getAsString(javax.faces.context.FacesContext, javax.faces.component.UIComponent, Object)
public void setName(String name)
setName
in class UIParameter
public String getName()
ParamHolder
getName
in interface ParamHolder<T>
getName
in class UIParameter
Copyright © 2012–2020 OmniFaces. All rights reserved.