public class HashParam extends OnloadParam
 The <o:hashParam> is a component that extends the standard <f:viewParam>
 with support for setting hash query parameter values in bean and automatically reflecting updated model values in
 hash query string.
 
 The "hash query string" is the part in URL after the # which could be formatted in the same format
 as a regular request query string (the part in URL after the ?). An example:
 
https://example.com/page.xhtml#foo=baz&bar=kaz
 This specific part of the URL (also called hash fragment identifier) is by default not sent to the server. This
 component will on page load and on every window.onhashchange event send it anyway so that the JSF model
 gets updated, and on every JSF ajax request update the hash query string in client side when the JSF model value has
 changed.
 
 It's very similar to the <o:viewParam>.
 
 <f:metadata>
     <o:hashParam name="foo" value="#{bean.foo}" />
     <o:hashParam name="bar" value="#{bean.bar}" />
 </f:metadata>
 
 
 You can use the render attribute to declare which components should be updated when a hash parameter
 value is present.
 
 <f:metadata>
     <o:hashParam name="foo" value="#{bean.foo}" render="fooResult" />
     <o:hashParam name="bar" value="#{bean.bar}" />
 </f:metadata>
 ...
 <h:body>
     ...
     <h:panelGroup id="fooResult">
         ...
     </h:panelGroup>
     ...
 </h:body>
 
 
 In case you need to invoke a bean method before rendering, e.g. to preload the rendered contents based on new hash
 param values, then you can observe the HashChangeEvent. See the "Events" section for an usage example.
 
 You can use the default attribute to declare a non-null value which should be interpreted as the default
 value. In other words, when the current model value matches the default value, then the hash parameter will be
 removed.
 
 <f:metadata>
     <o:hashParam name="foo" value="#{bean.foo}" />
     <o:hashParam name="bar" value="#{bean.bar}" default="kaz" />
 </f:metadata>
 
 
 When #{bean.foo} is "baz" and #{bean.bar} is "kaz" or empty,
 then the reflected hash query string will become https://example.com/page.xhtml#foo=baz.
 If #{bean.bar} is any other value, then it will appear in the hash query string.
 
 Note that as it extends from the standard <f:viewParam>, its built-in conversion and validation
 functionality is also supported on this component.
 
 When the hash query string is changed by the client side, e.g. by following a #foo=baz&bar=kaz link,
 or by manually manipulating the URL, then a CDI HashChangeEvent will be fired which can be observed in any
 CDI managed bean as below:
 
 public void onHashChange(@Observes HashChangeEvent event) {
     String oldHashString = event.getOldValue();
     String newHashString = event.getNewValue();
     // ...
 }
 
 
 This is useful in case you want to preload the model for whatever is rendered by
 <o:hashParam render>.
Faces.getHashParameters(), 
Faces.getHashParameterMap(), 
Faces.getHashQueryString(), 
HashChangeEventUIViewParameter.Reference| Modifier and Type | Field and Description | 
|---|---|
| static String | COMPONENT_TYPEThe component type, which is "org.omnifaces.component.input.HashParam". | 
| static String | EVENT_VALUEThe omnifaces event value, which is "setHashParamValues". | 
stateCOMPONENT_FAMILYALWAYS_PERFORM_VALIDATION_WHEN_REQUIRED_IS_TRUE, CONVERSION_MESSAGE_ID, EMPTY_STRING_AS_NULL_PARAM_NAME, REQUIRED_MESSAGE_ID, UPDATE_MESSAGE_ID, VALIDATE_EMPTY_FIELDS_PARAM_NAMEATTRS_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 | 
|---|
| HashParam() | 
| Modifier and Type | Method and Description | 
|---|---|
| protected void | decodeAll(FacesContext context)Decode all relevant  OnloadParamcomponents at once. | 
| String | getDefault()Returns the default value in case the actual hash parameter is  nullor empty. | 
| protected String | getEventValue(FacesContext context)Returns the value of the  OmniFaces.OMNIFACES_EVENT_PARAM_NAMEassociated with the current component. | 
| protected String | getInitScript(FacesContext context)Returns script which should be executed upon initialization of a new view. | 
| String | getRenderedValue(FacesContext context)Convert the value to string using any converter and ensure that an empty string is returned when the component
 is invalid or the resulting string is null or represents the default value. | 
| protected String | getUpdateScript(FacesContext context)Returns script which should be exeucted upon ajax update of the current view. | 
| static boolean | isHashParamRequest(FacesContext context)Returns  trueif the current request is triggered by a hash param request. | 
| void | setDefault(String defaultValue)Sets the default value in case the actual hash parameter is  nullor empty. | 
decodeImmediately, getRender, isOnloadParamRequest, isOnloadParamRequest, processDecodes, processValidators, setRender, updateModeldecode, encodeAll, getConvertedValue, getFamily, getName, getStringValue, getStringValueFromModel, getSubmittedValue, isImmediate, setName, setSubmittedValueaddValidator, addValueChangeListener, clearInitialState, compareValues, getConverterMessage, getRequiredMessage, getValidator, getValidatorMessage, getValidators, getValue, getValueChangeListener, getValueChangeListeners, isEmpty, isLocalValueSet, isRequired, isValid, markInitialState, processUpdates, removeValidator, removeValueChangeListener, resetValue, restoreState, saveState, setConverterMessage, setImmediate, setLocalValueSet, setRequired, setRequiredMessage, setValid, setValidator, setValidatorMessage, setValue, setValueChangeListener, validate, validateValuegetConverter, getLocalValue, setConverteraddClientBehavior, addFacesListener, broadcast, 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, processRestoreState, processSaveState, queueEvent, removeFacesListener, restoreAttachedState, saveAttachedState, setId, setParent, setRendered, setRendererType, setTransient, setValueBinding, subscribeToEvent, unsubscribeFromEventgetClientId, getCompositeComponentParent, getContainerClientId, getCurrentComponent, getCurrentCompositeComponent, getNamingContainer, getPassThroughAttributes, getResourceBundleMap, getStateHelper, getStateHelper, getTransientStateHelper, getTransientStateHelper, getValueExpression, initialStateMarked, isCompositeComponent, isInView, isVisitable, popComponentFromEL, processEvent, pushComponentToEL, restoreTransientState, saveTransientState, setInView, setValueExpression, visitTreeclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitgetConverter, getLocalValue, setConverterpublic static final String COMPONENT_TYPE
public static final String EVENT_VALUE
protected String getInitScript(FacesContext context)
OnloadParamgetInitScript in class OnloadParamcontext - The involved faces context.protected String getUpdateScript(FacesContext context)
OnloadParamgetUpdateScript in class OnloadParamcontext - The involved faces context.protected String getEventValue(FacesContext context)
OnloadParamOmniFaces.OMNIFACES_EVENT_PARAM_NAME associated with the current component.getEventValue in class OnloadParamcontext - The involved faces context.OmniFaces.OMNIFACES_EVENT_PARAM_NAME associated with the current component.protected void decodeAll(FacesContext context)
OnloadParamOnloadParam components at once.decodeAll in class OnloadParamcontext - The involved faces context.public String getRenderedValue(FacesContext context)
public String getDefault()
null or empty.null or empty.public void setDefault(String defaultValue)
null or empty.defaultValue - The default value in case the actual hash parameter is null or empty.public static boolean isHashParamRequest(FacesContext context)
true if the current request is triggered by a hash param request.
 I.e. if it is initiated by OmniFaces.HashParam.setHashParamValues() script which runs on page load
 when the window.location.hash is present, and on every window.onhashchange event.context - The involved faces context.true if the current request is triggered by a hash param request.Copyright © 2012–2020 OmniFaces. All rights reserved.