facesdoc.HTML_BASIC.javax.faces.OutcomeTargetjavax.faces.Button.html Maven / Gradle / Ivy
Show all versions of javax.faces-api Show documentation
component-family: javax.faces.OutcomeTarget renderer-type: javax.faces.Button
HTML_BASIC render-kit
component-family: javax.faces.OutcomeTarget renderer-type: javax.faces.Button
Render a button that does not
cause an HTTP POST.
Encode Behavior
Render an HTML "input" element of type "button". The value of the
component is rendered as the button text and the outcome of the
component is used to determine the target URL which is activated by
onclick. If "image" attribute is specified, render it as the value of
the "src" attribute after passing it to the
getResourceURL()
method of the ViewHandler
for
this application, and passing the result through the
encodeResourceURL()
method of the
ExternalContext
.
If the component is not disabled, take the following actions.
Algorithm to obtain the url to which the user-agent should issue a GET request when clicked
Obtain the NavigationCase
that corresponds to the
component instance for this Renderer
.
Obtain an instance of
javax.faces.application.ConfigurableNavigationHandler
from
the ViewHandler
. If no such instance can be obtained,
write the "disabled" attribute on the button. Otherwise, let
outcome be the result of calling getOutcome()
on
the argument component, which must be an instance of
UIOutcomeTarget
. If this result is null
, let
outcome be the viewId of the current UIViewRoot
.
Let navCase be the return from calling
getNavigationCase()
on the
ConfigurableNavigationHandler
, passing the current
FacesContext
as the first argument, null
, as
the second argument, and outcome as the third argument. If
this returns null
, log an informative error which includes
the component id, and write the "disabled" attribute on the component
markup, with the value of true
. Otherwise obtain the
encoded target URL using the following algorithm.
Algorithm to obtain the encoded target URL
Let params be the Map<String,
List<String>>
to be passed to
ViewHandler.getBookmarkableURL()
. Build this map up first
from any child UIParameter
components. These children must
be processed in the order in which they appear as children. If multiple
children with the same name are encountered, their values must appear in
the List<String>
in the Map
entry with
the same name, and appear in the list in the same order as their child
order.
Next, obtain any parameters included within the
navigation case. Call getParameters()
on
navCase. The result will be a Map<String,
List<String>>
. If the result is
non-null
and non-empty, iterate over the entries
from the result Map
and, if no entry with the
same name exists in params, set the value from the
current entry as the value in the params
Map
.
Let includeViewParams be the result of a
logical OR of the results from calling
isIncludeViewParams()
on the argument
UIOutcomeTarget
component and calling
isIncludeViewParams
on navCase.
Call getBookmarkableURL()
on the
ViewHandler
, passing the current
FacesContext
as the first argument, the return
from calling getToViewId()
as the second
argument, params as the third argument, and
includeViewParams as the last argument.
The entire target URL string must be passed through a call to
the encodeResourceURL()
method of the
ExternalContext
. The name of the
UIParameter
goes on the left hand side, and the value of
the UIParameter
on the right hand side. The name and the
value must be URLEncoded. Each UIParameter
instance is
separeted by an ampersand, as dictated in the URL spec. The final
encoded result will be written out to the onclick attribute of the
button as "window.location.href = ''". If the
developer has specified a custom onlclick the window.location.href
name/value pair will be appended at the end of the developer specified
script. If the "fragment" attribute is specified, the value will be
included at the end of the resulting URL preceded by a hash mark. If
the "styleClass" attribute is specified, render its value as the value
of the "class" attribute. If the "id" attribute is specified, follow
the same steps as mentioned in the "General
Notes on Encoding" regarding the "id" attribute for UIInput
components. If the "disabled" attribute is specified, do not render
the "onclick" element and assign the "disabled" attribute a value of
true.
This renderer is responsible for rendering its children.
Note:
Attributes with a pass-through
value of
true
are not interpreted by the renderer and are passed
straight through to the rendered markup, without checking for validity. Attributes with a
pass-through
value of false
are interpreted
by the renderer, and may or may not be checked for validity by the renderer.
Attributes
attribute-name
pass-through
attribute-class
description
default-value
accesskey
true
java.lang.String
Access key that, when pressed, transfers focus
to this element.
undefined
alt
true
java.lang.String
Alternate textual description of the
element rendered by this component.
undefined
dir
true
java.lang.String
Direction indication for text that does not inherit directionality.
Valid values are "LTR" (left-to-right) and "RTL" (right-to-left).
undefined
fragment
false
java.lang.String
The identifier of the page fragment which should
be brought into focus when the target page is
rendered. The value of this attribute is appended
to the end of target URL following a hash (#) mark.
This notation is part of the standard URL syntax.
undefined
image
false
java.lang.String
Absolute or relative URL of the
image to be displayed for this
button. If specified, this
"input" element will be of type
"image". Otherwise, it will be
of the type specified by the
"type" property with a label
specified by the "value"
property. Note
that if the value of this
attribute starts with "/", the
rendered value for this
attribute will be prefixed with
the context-root for this
application.
undefined
lang
true
java.lang.String
Code describing the language used in the generated markup
for this component.
undefined
onblur
true
java.lang.String
Javascript code executed when this element loses focus.
undefined
onclick
true
java.lang.String
Javascript code executed when a pointer button is
clicked over this element.
undefined
ondblclick
true
java.lang.String
Javascript code executed when a pointer button is
double clicked over this element.
undefined
onfocus
true
java.lang.String
Javascript code executed when this element receives focus.
undefined
onkeydown
true
java.lang.String
Javascript code executed when a key is
pressed down over this element.
undefined
onkeypress
true
java.lang.String
Javascript code executed when a key is
pressed and released over this element.
undefined
onkeyup
true
java.lang.String
Javascript code executed when a key is
released over this element.
undefined
onmousedown
true
java.lang.String
Javascript code executed when a pointer button is
pressed down over this element.
undefined
onmousemove
true
java.lang.String
Javascript code executed when a pointer button is
moved within this element.
undefined
onmouseout
true
java.lang.String
Javascript code executed when a pointer button is
moved away from this element.
undefined
onmouseover
true
java.lang.String
Javascript code executed when a pointer button is
moved onto this element.
undefined
onmouseup
true
java.lang.String
Javascript code executed when a pointer button is
released over this element.
undefined
style
true
java.lang.String
CSS style(s) to be applied when this component is rendered.
undefined
styleClass
false
java.lang.String
Space-separated list of CSS style class(es) to be applied when
this element is rendered. This value must be passed through
as the "class" attribute on generated markup.
undefined
tabindex
true
java.lang.String
Position of this element in the tabbing order
for the current document. This value must be
an integer between 0 and 32767.
undefined
title
true
java.lang.String
Advisory title information about markup elements generated
for this component.
undefined
Copyright (c) 2003-2010 Oracle America, Inc. All Rights Reserved.