public class Form extends HtmlForm
The <o:form>
is a component that extends the standard <h:form>
and submits to
exactly the request URI with query string as seen in browser's address. Standard JSF <h:form>
submits to the view ID and does not include any query string parameters or path parameters and may therefore fail
in cases when the form is submitted to a request scoped bean which relies on the same initial query string parameters
or path parameters still being present in the request URI. This is particularly useful if you're using FacesViews or
forwarding everything to 1 page.
Additionally, it offers in combination with the <o:ignoreValidationFailed>
tag on an
UICommand
component the possibility to ignore validation failures so that the invoke action phase will be
executed anyway.
Since version 2.1 this component also supports adding query string parameters to the action URL via nested
<f:param>
and <o:param>
.
Since version 3.0, it will also during ajax requests automatically send only the form data which actually need to
be processed as opposed to the entire form, based on the execute
attribute of any nested
<f:ajax>
. This feature is similar to partialSubmit
feature of PrimeFaces.
This will reduce the request payload when used in large forms such as editable tables.
You can use it the same way as <h:form>
, you only need to change h:
to
o:
.
This was available since version 1.6, but since version 3.0, this has become enabled by default. So just using
<o:form>
will already submit to the exact request URI with query string as seen in browser's
address bar. In order to turn off this behavior, set useRequestURI
attribute to false
.
<o:form useRequestURI="false">
When you want to include request parameters only instead of the entire request URI with query string, set the
includeRequestParams
attribute to true
. This will implicitly set useRequestURI
attribute to false
.
<o:form includeRequestParams="true">
This is the default behavior. So just using <o:form>
will already cause the
<f:ajax>
to send only the form data which actually need to be processed. In order to turn off this
behavior, set partialSubmit
attribute to false
.
<o:form partialSubmit="false">
The standard UIForm
doesn't support adding query string parameters to the action URL. This component offers
this possibility via nested <f:param>
and <o:param>
.
<o:form> <f:param name="somename" value="somevalue" /> ... </o:form>
The <f|o:param>
will override any included view or request parameters on the same name. To conditionally add
or override, use the disabled
attribute of <f|o:param>
.
The support was added in OmniFaces 2.2.
In order to properly use the <o:ignoreValidationFailed>
tag on an UICommand
component, its
parent <h:form>
component has to be replaced by this <o:form>
component.
See also IgnoreValidationFailed
.
Previously, the <o:form>
also supported includeViewParams
, but
this did after all not have any advantage over the later introduced useRequestURI
and
includeRequestParams
. Hence the includeViewParams
is marked deprecated since 3.0.
Modifier and Type | Field and Description |
---|---|
static String |
COMPONENT_TYPE |
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
SEPARATOR_CHAR
Constructor and Description |
---|
Form() |
Modifier and Type | Method and Description |
---|---|
void |
encodeBegin(FacesContext context) |
boolean |
isIgnoreValidationFailed()
Returns whether or not the form should ignore validation fail (and thus proceed to update model/invoke action).
|
boolean |
isIncludeRequestParams()
Returns whether or not the request parameters should be encoded into the form's action URL.
|
boolean |
isIncludeViewParams()
Deprecated.
Since 3.0
|
boolean |
isPartialSubmit()
Returns whether to send only the form data which actually need to be processed as opposed to the entire form.
|
boolean |
isUseRequestURI()
Returns whether the request URI should be used as form's action URL.
|
void |
processUpdates(FacesContext context) |
void |
processValidators(FacesContext context) |
void |
setIgnoreValidationFailed(boolean ignoreValidationFailed)
Set whether the form should ignore validation fail.
|
void |
setIncludeRequestParams(boolean includeRequestParams)
Set whether or not the request parameters should be encoded into the form's action URL.
|
void |
setIncludeViewParams(boolean includeViewParams)
Deprecated.
Since 3.0
|
void |
setPartialSubmit(boolean partialSubmit)
Set whether to send only the form data which actually need to be processed as opposed to the entire form.
|
void |
setUseRequestURI(boolean useRequestURI)
Set whether the request URI should be used as form's action URL.
|
getAccept, getAcceptcharset, getDefaultEventName, getDir, getEnctype, getEventNames, getLang, getOnclick, getOndblclick, getOnkeydown, getOnkeypress, getOnkeyup, getOnmousedown, getOnmousemove, getOnmouseout, getOnmouseover, getOnmouseup, getOnreset, getOnsubmit, getRole, getStyle, getStyleClass, getTarget, getTitle, setAccept, setAcceptcharset, setDir, setEnctype, setLang, setOnclick, setOndblclick, setOnkeydown, setOnkeypress, setOnkeyup, setOnmousedown, setOnmousemove, setOnmouseout, setOnmouseover, setOnmouseup, setOnreset, setOnsubmit, setRole, setStyle, setStyleClass, setTarget, setTitle
createUniqueId, getContainerClientId, getFamily, isPrependId, isSubmitted, processDecodes, setPrependId, setSubmitted, visitTree
addClientBehavior, addFacesListener, broadcast, clearInitialState, decode, encodeChildren, encodeEnd, findComponent, getAttributes, getChildCount, getChildren, getClientBehaviors, getClientId, getFacesContext, getFacesListeners, getFacet, getFacetCount, getFacets, getFacetsAndChildren, getId, getListenersForEventClass, getParent, getPassThroughAttributes, getRenderer, getRendererType, getRendersChildren, getValueBinding, invokeOnComponent, isRendered, isTransient, markInitialState, processRestoreState, processSaveState, queueEvent, removeFacesListener, restoreAttachedState, restoreState, saveAttachedState, saveState, setId, setParent, setRendered, setRendererType, setTransient, setValueBinding, subscribeToEvent, unsubscribeFromEvent
encodeAll, getClientId, getCompositeComponentParent, getCurrentComponent, getCurrentCompositeComponent, getNamingContainer, getPassThroughAttributes, getResourceBundleMap, getStateHelper, getStateHelper, getTransientStateHelper, getTransientStateHelper, getValueExpression, initialStateMarked, isCompositeComponent, isInView, isVisitable, popComponentFromEL, processEvent, pushComponentToEL, restoreTransientState, saveTransientState, setInView, setValueExpression
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
addClientBehavior, getClientBehaviors
public static final String COMPONENT_TYPE
public void processValidators(FacesContext context)
processValidators
in class UIForm
public void processUpdates(FacesContext context)
processUpdates
in class UIForm
public void encodeBegin(FacesContext context) throws IOException
encodeBegin
in class UIComponentBase
IOException
@Deprecated public boolean isIncludeViewParams()
includeRequestParams
is set to true
.@Deprecated public void setIncludeViewParams(boolean includeViewParams)
includeRequestParams
is set to true
.includeViewParams
- Whether or not the view parameters should be encoded into the form's action URL.public boolean isIncludeRequestParams()
public void setIncludeRequestParams(boolean includeRequestParams)
includeRequestParams
- Whether or not the request parameters should be encoded into the form's action URL.public boolean isUseRequestURI()
true
.
This setting is ignored when includeRequestParams
is set to true
.public void setUseRequestURI(boolean useRequestURI)
includeRequestParams
is set to true
.useRequestURI
- Whether the request URI should be used as form's action URL.public boolean isIgnoreValidationFailed()
public void setIgnoreValidationFailed(boolean ignoreValidationFailed)
ignoreValidationFailed
- Whether the form should ignore validation fail.public boolean isPartialSubmit()
true
.public void setPartialSubmit(boolean partialSubmit)
partialSubmit
- Whether to send only the form data which actually need to be processed as opposed to the entire form.Copyright © 2012–2021 OmniFaces. All rights reserved.