facesdoc.HTML_BASIC.renderkit-summary.html Maven / Gradle / Ivy
Show all versions of javax.faces-api Show documentation
Faces RenderKit
HTML_BASIC RenderKit
The standard HTML RenderKit. Please see the spec for additional
details for the standard render-kit.
The following new renderers have been
added in this release of the specification. The default
implementation of the spec must not expose these renderers to JSP
based views.
- javax.faces.Output
- javax.faces.Body
- javax.faces.Head
- javax.faces.resource.Script
- javax.faces.resource.Stylesheet
- javax.faces.Composite
General notes on decoding
Only Renderers for components which cause data to sent to the
server on a page submit need to implement decode behavior. In
practical terms, this means Renderers for components that implement
from javax.faces.component.EditableValueHolder
or
javax.faces.component.ActionSource
or Renderers for
javax.faces.component.UIForm
components. Renderers
for components that do not send data to the server on page submit
may choose to accept the no-op decode behavior of the
javax.faces.render.Renderer
abstract class. In the
Renderer descriptions that follow, the omission of a Decode
Behavior section indicates that this Renderer does no decoding.
If a Renderer chooses to implement decode behavior, it must
consult the "disabled" and "readonly" attributes of the component
to be rendered, if the value of either attribute is equal to,
ignoring case, the string "true" (without the quotes) the decode
method must take no action and return immediately.
If the component associated with the Renderer implements the
javax.faces.component.behavior.ClientBehaviorHolder
interface,
process javax.faces.component.behavior.ClientBehavior
s as follows:
- Determine if there are
javax.faces.component.behavior.ClientBehavior
s
associated with this component by calling the implementation of
javax.faces.component.behavior.ClientBehaviorHolder.getClientBehaviors
.
- If there are
client behaviors
, determine the
client behavior event name from the request parameter:
javax.faces.behavior.event
.
- If that request parameter exists, get the
List
of
javax.faces.component.behavior.ClientBehavior
s for the
behavior event name from the Map
returned from
javax.faces.component.behavior.ClientBehaviorHolder.getClientBehaviors
.
- If there are
client behaviors
for the behavior event name
,
determine the behavior source name from the request parameter:
javax.faces.source
.
- If the request parameter exists, and its value is the same as this
component's
clientId
, iterate over the List
of
javax.faces.component.behavior.ClientBehavior
s and call the
decode()
method for each one.
Behavior decoding is applicable to components that are "readonly", but it is
not applicable to components that are "disabled".
General notes on encoding
If the value of the component's "rendered" property is false,
the component, and its children must not be rendered.
General notes regarding the id
attribute
All components, and therefore all tags for those components
support the id
attribute. This attribute is optional.
If not present its value is autogenerated by the implementation and
used for internal purposes only. If present, an id
attribute must not start with the String
listed as the
value of the constant UIViewRoot.UNIQUE_ID_PREFIX
, and
it must be unique within the scope of the nearest component that is
a NamingContainer
.
All renderers must take the following action regarding the
id
attribute: If the value returned from
component.getId()
is non-null
and does
not start with UIViewRoot.UNIQUE_ID_PREFIX
, call
component.getClientId()
and render the result as the
value of the id
attribute in the markup for the
component. See the javadoc for
component.getClientId()
for details, particularly note
that the Renderer has a chance to modify the client id before it is
rendered. If the component doesn't generate any markup elements,
include the id
attribte on a "span" element that
encloses the content for the component.
In addition to any action already specified in the renderers, all
renderers for UIInput
components must take the
following action regarding the id
attribute: Call
component.getClientId()
and render the result as the
value of the name
attribute. This may cause some
renderers to have "id" and "name" attributes that have exactly the
same value.
General notes regarding the rendering of JavaScript in the
standard components.
The intent of the standard renderkit is to specify the minimal
Renderers a JSF implementation must provide. As such, it is the
baseline for building JSF applications that are maximally
portable across JSF implementations and user agents. Therefore,
the use of JavaScript must be minimized as not all browsers
support JavaScript, nor do all users enable JavaScript support in
their user agents.
Compliant implementations must only generate JavaScript in the
javax.faces.Link
and javax.faces.Button
Renderers for the javax.faces.Command
component.
The generation of JavaScript in any other Renderer in the
HTML_BASIC renderkit is not permitted. However, any JavaScript
code provided by the user as the value of a passthru attribute,
such as "onmouseover", is excluded from this restriction.
General notes regarding the rendering of component Client Behaviors
.
Components that implement the javax.faces.component.behavior.ClientBehaviorHolder
interface are eligable to have ClientBehavior
instances attached to them. The standard
renderers are responsible for inserting the scripts produced by client behaviors into the component's
rendered content. Components may obtain script from multiple sources. Event handler scripts may be specified
by page authors, scripts may be produced by client behaviors and renderers may produce ther own scripts.
When multiple scripts are present, the scripts must be chained together in this order:
- User specified event handler scripts
- client behavior scripts
- renderer specific scripts
If any of the scripts in the chain returns false
, subsequent script must not be executed.
The specification provides a utility function jsf.util.chain
to handle this capability. If there
are UIParameter
children the parameter names and values must be passed into the client behavior
getScript method via the ClientBehaviorContext
.
Renderer Summary
component-family
renderer-type
description
javax.faces.Command
javax.faces.Button
Renders an HTML "input"
element.
javax.faces.Link
Render an HTML "a" anchor
element that acts like a form submit button when
clicked.
javax.faces.Data
javax.faces.Table
Renders an HTML
"table" element compliant with the HTML 401 specification.
javax.faces.Form
javax.faces.Form
Renders an HTML "form" element.
javax.faces.Graphic
javax.faces.Image
Renders an HTML "img"
element.
javax.faces.Input
javax.faces.Hidden
Renders an HTML "input" element of type
"hidden".
javax.faces.Secret
Renders an HTML "input" element of "type" "password".
javax.faces.Text
Renders an HTML "input"
element of "type" "text".
javax.faces.Textarea
Renders an HTML "textarea" element.
javax.faces.Message
javax.faces.Message
Render a single message for a specific component.
javax.faces.Messages
javax.faces.Messages
The same as for the
Message renderer, but output all the messages.
javax.faces.NamingContainer
javax.faces.Composite
Renders a composite component.
javax.faces.OutcomeTarget
javax.faces.Button
Render a button that does not
cause an HTTP POST.
javax.faces.Link
Render an HTML "a" anchor element.
javax.faces.Output
javax.faces.Body
Render the markup for a
<body>
element.
javax.faces.CompositeFacet
Renders a facet at
this particular point in the composite component VDL page.
javax.faces.Doctype
Render the markup for
a <!DOCTYPE>
declaration.
javax.faces.Format
Render parameterized text.
javax.faces.Head
Render the markup for a
<head>
element.
javax.faces.Label
Renders an HTML "label" element.
javax.faces.Link
Render an
HTML "a" anchor element.
javax.faces.Text
If the "styleClass", "style", "dir" or "lang"
attributes are present, render a "span" element.
javax.faces.resource.Script
Render the markup for a
<script>
element that renders the script
Resource
specified by the optional
name
attribute and library
attributes.
javax.faces.resource.Stylesheet
Render the markup for a
<link>
element that renders the style
Resource
specified by the optional name
and
library
attributes.
javax.faces.Panel
javax.faces.Grid
Renders an HTML "table" element, conforming to the
rules in the HTML 401 specification.
javax.faces.Group
Intended for use in situations when only one
UIComponent child can be nested, such as in the case of facets.
javax.faces.SelectBoolean
javax.faces.Checkbox
Renders an HTML "input" element of type "checkbox".
javax.faces.SelectMany
javax.faces.Checkbox
Render an HTML checkbox
list.
javax.faces.Listbox
Render an HTML option
list.
javax.faces.Menu
Render an HTML option
list.
javax.faces.SelectOne
javax.faces.Listbox
Render an HTML option list.
javax.faces.Menu
Render an HTML option list.
javax.faces.Radio
Render a set of html
"input" elements of type "radio".
Copyright ? 2002-2010 Oracle America, Inc. All Rights Reserved.