JSF Overview
JavaServer Faces (JSF) is the “official” component-based view
technology in the Java EE web tier. JSF includes a set of predefined UI
components, an event-driven programming model, and the ability to add
third-party components. JSF is designed to be extensible, easy to use, and
toolable. This refcard describes JSF 2.0.
Development Process
A developer specifies JSF components in JSF pages, combining JSF component
tags with HTML and CSS for styling. Components are linked with managed
beans—Java classes that contain presentation logic and connect to
business logic and persistence backends.
In JSF 2.0, it is recommended that you use the facelets format for
your pages:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:ui="http://java.sun.com/jsf/facelets">
<h:head>...</h:head>
<h:body>
<h:form>
...
</h:form>
</h:body>
</html>
These common tasks give you a crash course into using JSF.
Text field
page.xhtml
<h:inputText value="#{bean1.luckyNumber}">
WEB-INF/classes/com/corejsf/SampleBean.java
@ManagedBean(name="bean1")
@SessionScoped
public class SampleBean {
public int getLuckyNumber() { ... }
public void setLuckyNumber(int value) { ... }
...
}
Button
page.xhtml
<h:commandButton value="press me" action="#{bean1.login}"/>
WEB-INF/classes/com/corejsf/SampleBean.java
@ManagedBean(name="bean1")
@SessionScoped
public class SampleBean {
public String login() { if (...) return "success"; else return "error"; }
...
}
The outcomes success
and error
can be mapped to
pages in faces-config.xml
. If no mapping is specified, the page
/success.xhtml
or /error.xhtml
is displayed.
Radio buttons
page.xhtml
<h:selectOneRadio value="#{form.condiment}>
<f:selectItems value="#{form.items}"/>
</h:selectOneRadio>
WEB-INF/classes/com/corejsf/SampleBean.java
public class SampleBean {
private static Map<String, Object> items;
static {
items = new LinkedHashMap<String, Object>();
items.put("Cheese", 1); // label, value
items.put("Pickle", 2);
...
}
public Map<String, Object> getItems() { return items; }
public int getCondiment() { ... }
public void setCondiment(int value) { ... }
...
}
Alternative 2.0
<h:selectOneRadio value="#{form.condiment}>
<f:selectItems value="#{form.items}"
var="it"
itemLabel="#{it.description}"
itemValue="#{it.productId}"/>
</h:selectOneRadio>
where the getItems
method returns a collection or array of
objects with getDescription
/getProductId
methods
Validation and Conversion
Using the Bean Validation Framework (JSR 303) 2.0
public class SampleBean {
@Max(1000) private BigDecimal amount;
}
Page-level validation and conversion:
<h:inputText value="#{bean1.amount}" required="true">
<f:validateDoubleRange maximum="1000"/>
</h:inputText>
<h:outputText value="#{bean1.amount}">
<f:convertNumber type="currency"/>
</h:outputText>
The number is displayed with currency symbol and group separator:
$1,000.00
Error Messages
<h:outputText value="Amount"/>
<h:inputText id="amount" label="Amount" value="#{payment.amount}"/>
<h:message for="amount"/>
Resources and Styles
page.xhtml
<h:outputStylesheet library="css" name="styles.css" target="head"/>
...
<h:outputText value="#{msgs.goodbye}!" styleClass="greeting">
faces-config.xml
<application>
<resource-bundle>
<base-name>com.corejsf.messages</base-name>
<var>msgs</var>
</resource-bundle>
</application>
WEB-INF/classes/com/corejsf/messages.properties
goodbye=Goodbye
WEB-INF/classes/com/corejsf/messages_de.properties
goodbye=Auf Wiedersehen
resources/css/styles.css
.greeting {
font-style: italic;
font-size: 1.5em;
color: #eee;
}
Table with links
page.xhtml
<h:dataTable value="#{bean1.entries}" var="row" styleClass="table" rowClasses="even,odd">
<h:column>
<f:facet name="header">
<h:outputText value="Name"/>
</f:facet>
<h:outputText value="#{row.name}"/>
</h:column>
<h:column>
<h:commandLink value="Delete" action="#{bean1.deleteAction}" immediate="true">
<f:setPropertyActionListener target="#{bean1.idToDelete}"
value="#{row.id}"/>
</h:commandLink>
</h:column>
</h:dataTable>
WEB-INF/classes/com/corejsf/SampleBean.java
public class SampleBean {
private int idToDelete;
public void setIdToDelete(int value) { idToDelete = value; }
public String deleteAction() {
// delete the entry whose id is idToDelete
return null;
}
public List<Entry> getEntries() { ... }
...
}
AJAX 2.0
<h:commandButton value="Update">
<f:ajax execute="input1 input2" render="output1"/>
</h:commandButton>
When the button is clicked, run the lifecycle's “execute” phase
on the components with IDs input1 input2
and the
“render” phase on the component with ID output1
.
The AJAX actions are triggered by onclick
events for buttons
and links, onchange
events for input fields and selection
lists.
Lifecycle
faces-config.xml
The faces-config.xml file contains a sequence of the following entries. When
indicated, annotations can be used instead.
managed-bean
description
, display-name
,
icon
(optional)
managed-bean-name
Equivalent annotation:
@ManagedBean(name="...")
managed-bean-class
managed-bean-scope
Equivalent annotation:
@NoneScoped
, @RequestScoped
,
@ViewScoped
, @SessionScoped
,
@ApplicationScoped
, @CustomScoped
managed-property
(0 or more, other optional choices are
map-entries
and list-entries
which are not
shown here)
description
, display-name
,
icon
(optional)
property-name
value
(other choices are null-value
,
map-entries
, list-entries
which are not
shown here)
Equivalent annotation, applied to field:
@ManagedProperty("value expression")
navigation-rule
description
, display-name
,
icon
(optional)
from-view-id
(optional, can use wildcards)
navigation-case
(1 or more)
from-action
(optional, not common)
if
2.0
from-outcome
to-view-id
application
resource-bundle
base-name
var
action-listener
, default-render-kit-id
,
message-bundle
, navigation-handler
,
partial-traversal
2.0,
view-handler
, state-manager
,
el-resolver
, property-resolver
,
variable-resolver
, resource-handler
2.0,
system-event-listener
2.0,
locale-config
2.0,
default-validators
2.0,
application-extension
(details not shown)
converter
Equivalent annotation:
@FacesConverter
converter-id
converter-class
- Optional initialization (not shown here)
validator
Equivalent annotation:
@FacesValidator
validator-id
validator-class
- Optional initialization (not shown here)
lifecycle
component
, factory
,
referenced-bean
, render-kit
,
faces-config-extension
(details not shown)
The JSF Expression Language (EL)
An EL expression is a sequence of literal strings and expressions of the
form
base[
expr1][
expr2]
...
As in JavaScript, you can write base.
identifier
instead of base['
identifier']
or
base["
identifier"]
. The base is one of the
names in the table below or a name defined in faces-config.xml.
header |
A Map of HTTP header parameters, containing only the first value for
each name. |
headerValues |
A Map of HTTP header parameters, yielding a String[] array of all
values for a given name. |
param |
A Map of HTTP request parameters, containing only the first value for
each name. |
paramValues |
A Map of HTTP request parameters, yielding a String[] array of all
values for a given name. |
cookie |
A Map of the cookie names and values of the current request. |
initParam |
A Map of the initialization parameters of this web application. |
requestScope , sessionScope ,
applicationScope , viewScope 2.0 |
A Map of all attributes in the given scope. |
facesContext |
The FacesContext instance of this request. |
view |
The UIViewRoot instance of this request. |
component 2.0 |
The current component |
cc 2.0 |
The current composite component |
resource 2.0 |
Use resource['library:name'] to access a resource |
- Value expression: a reference to a bean property or an entry in a map,
list, or array. Examples:
userBean.name
calls getName
or
setName
on the userBean
object
pizza.choices[var]
calls
pizza.getChoices().get(var)
or
pizza.getChoices().put(var, ...)
- Method expression: a reference to a method and the object on which it is
to be invoked. Example:
userBean.login
calls the login
method on the
userBean
object when it is invoked.
In JSF, EL expressions are enclosed in #{...}
to indicate
deferred evaluation. The expression is stored as a string and
evaluated when needed. In contrast, JSP uses immediate evaluation, indicated by
${...}
delimiters.
2.0: EL
expressions can contain JSTL functions
fn:contains(str, substr)
fn:containsIgnoreCase(str, substr)
fn:startsWith(str, substr)
fn:endsWith(str, substr)
fn:length(str)
fn:indexOf(str)
fn:join(strArray, separator)
fn:split(str, separator)
fn:substring(str, start, pastEnd)
fn:substringAfter(str, separator)
fn:substringBefore(str, separator)
fn:replace(str, substr, replacement)
fn:toLowerCase(str)
fn:toUpperCase(str)
fn:trim()
fn:escapeXml()
JSF Core Tags
Tag |
Description/ Attributes |
f:facet |
Adds a facet to a component
name |
the name of this facet |
|
f:attribute |
Adds an attribute to a component
name , value |
the name and value of the attribute to set |
|
f:param |
Constructs a parameter child component
name |
An optional name for this parameter component. |
value |
The value stored in this component. |
|
f:actionListener
f:valueChangeListener
|
Adds an action listener or value change listener to a component
type |
The name of the listener class |
|
f:setPropertyChangeListener 1.2 |
Adds an action listener to a component that sets a bean property to a
given value.
target |
The bean property to set when the action event occurs |
value |
The value to set it to |
|
f:phaseListener 1.2 |
Adds a phase listener to this page.
type |
The name of the listener class |
|
f:event 2.0 |
Adds a system event listener to a component
name |
One of preRenderComponent ,
postAddToView , preValidate ,
postValidate |
listener |
A method expression of the type void
(ComponentSystemEvent) throws
AbortProcessingException |
|
f:converter |
Adds an arbitrary converter to a component
converterId |
The ID of the converter |
|
f:convertDateTime |
Adds a datetime converter to a component
type |
date (default), time , or
both |
dateStyle , timeStyle |
default , short ,
medium , long , or
full |
pattern |
Formatting pattern, as defined in
java.text.SimpleDateFormat |
locale |
Locale whose preferences are to be used for parsing and
formatting |
timeZone |
Time zone to use for parsing and formatting (Default:
UTC) |
|
f:convertNumber |
Adds a number converter to a component
type |
number (default), currency , or
percent |
pattern |
Formatting pattern, as defined in
java.text.DecimalFormat |
minIntegerDigits , maxIntegerDigits ,
minFractionDigits , maxFractionDigits
|
Minimum, maximum number of digits in the integer and
fractional part |
integerOnly |
True if only the integer part is parsed (default:
false ) |
groupingUsed |
True if grouping separators are used (default:
true ) |
locale |
Locale whose preferences are to be used for parsing and
formatting |
currencyCode |
ISO 4217 currency code to use when converting currency
values |
currencySymbol |
Currency symbol to use when converting currency values |
|
f:validator |
Adds a validator to a component
validatorId |
The ID of the validator |
|
f:validateDoubleRange , f:validateLongRange ,
f:validateLength |
Validates a double or long value, or the length of a string
minimum , maximum |
the minimum and maximum of the valid range |
|
f:validateRequired 2.0 |
Sets the required attribute of the enclosing
component |
f:validateBean 2.0 |
Specify validation groups for the Bean Validation Framework (JSR
303) |
f:loadBundle |
Loads a resource bundle, stores properties as a Map
basename |
The resource bundle name |
value |
The name of the variable that is bound to the bundle map |
|
f:selectitem |
Specifies an item for a select one or select many component
binding , id |
Basic attributes |
itemDescription |
Description used by tools only |
itemDisabled |
false (default) to show the value |
itemLabel |
Text shown by the item |
itemValue |
Item’s value, which is passed to the server as a
request parameter |
value |
Value expression that points to a SelectItem
instance |
escape |
true (default) if special characters should be converted to
HTML entities |
noSelectionOption 2.0 |
true if this item is the “no selection
option” |
|
f:selectitems |
Specifies items for a select one or select many component
value |
Value expression that points to a SelectItem , an
array or Collection , or a Map mapping
labels to values. |
var 2.0 |
Variable name used in value expressions when traversing an
array or collection of non-SelectItem elements |
itemLabel 2.0,
itemValue 2.0,
itemDescription 2.0,
itemDisabled 2.0,
itemLabelEscaped 2.0 |
Item label, value, description, disabled and escaped flags
for each item in an array or collection of
non-SelectItem elements. Use the variable name
defined in var . |
noSelectionOption 2.0 |
Value expression that yields the “no selection
option” item or string that equals the value of the
“no selection option” item |
|
f:ajax 2.0 |
Enables Ajax behavior
execute , render |
Lists of component IDs for processing in the
“execute” and “render” lifecycle
phases |
event |
JavaScript event that triggers behavior. Default:
click for buttons and links, change
for input components |
immediate |
If true, generated events are broadcast during “Apply
Request Values” phase instead of “Invoke
Application” |
listener |
Method binding of type void
(AjaxBehaviorEvent) |
onevent , onerror |
JavaScript handlers for events/errors |
|
f:viewParam 2.0 |
Defines a “view parameter” that can be initialized with a
request parameter |
f:metadata 2.0 |
Holds view parameters. May hold other metadata in the future |
f:view , f:subview ,
f:verbatim |
Not needed with facelets |
JSF HTML Tags
Tag |
Description |
|
h:head 2.0,h:body2.0 ,
h:form |
HTML head, body, form |
|
h:outputStylesheet 2.0,
h:outputScript 2.0 |
Produces a style sheet or script |
|
h:inputText |
Single-line text input control. |
|
h:inputTextArea |
Multiline text input control. |
|
h:inputSecret |
Password input control. |
|
h:inputHidden |
Hidden field |
|
h:outputLabel |
Label for another component for accessibility |
|
h:outputLink |
HTML anchor. |
|
h:outputFormat |
Like outputText , but formats compound messages |
|
h:outputText |
Single-line text output. |
|
h:commandButton , h:button 2.0 |
Button: submit, reset, or pushbutton. |
|
h:commandLink , h:link 2.0 |
Link that acts like a pushbutton. |
|
h:message |
Displays the most recent message for a component |
|
h:messages |
Displays all messages |
|
h:grapicImage |
Displays an image. |
|
h:selectOneListbox |
Single-select listbox. |
|
h:selectOneMenu |
Single-select menu. |
|
h:selectOneRadio |
Set of radio buttons. |
|
h:selectBooleanCheckbox |
Checkbox. |
|
h:selectManyCheckbox |
Set of checkboxes. |
|
h:selectManyListbox |
Multiselect listbox. |
|
h:selectManyMenu |
Multiselect menu. |
|
h:panelGrid |
HTML table |
|
h:panelGroup |
Two or more components that are laid out as one |
|
h:dataTable |
A feature-rich table component |
|
h:column |
Column in a data table |
|
Basic Attributes
Attribute |
Description |
id |
Identifier for a component |
binding |
Reference to the component that can be used in a backing bean |
rendered |
A boolean; false suppresses rendering |
value |
A component’s value, typically a value binding |
validator |
A method expression of the type void (FacesContext,
UIComponent, Object) |
valueChangeListener |
A method expression of the type void
(ValueChangeEvent) |
converter |
Converter class name |
required |
A boolean; if true, requires a value to be entered in the associated
field |
Attributes for h:body
and h:form
Attribute |
Description |
binding , id , rendered |
Basic attributes |
dir , lang , style ,
styleClass , target , title
h:form only: accept ,
acceptcharset , enctype
|
HTML 4.0 attributes (acceptcharset corresponds to HTML
accept-charset , styleClass corresponds to
HTML class ) |
onclick , ondblclick ,
onkeydown , onkeypress , onkeyup ,
onmousedown , onmousemove ,
onmouseout , onmouseover
h:body only: onload ,
onunload
h:form only: onblur ,
onchange , onfocus , onreset ,
onsubmit
|
DHTML events |
Attributes for h:inputText
, h:inputSecret,
h:inputTextarea
, and h:inputHidden
Attribute |
Description |
cols |
For h:inputTextarea only—number of columns |
immediate |
Process validation early in the life cycle |
redisplay |
For h:inputSecret only—when true, the input
field’s value is redisplayed when the web page is reloaded |
required |
Require input in the component when the form is submitted |
rows |
For h:inputTextarea only—number of rows |
binding , converter , id ,
rendered , required , value ,
validator , valueChangeListener |
Basic attributes |
accesskey , alt , dir ,
disabled , lang , maxlength ,
readonly , size , style ,
styleClass , tabindex , title |
HTML 4.0 pass-through attributes—alt ,
maxlength , and size do not apply to
h:inputTextarea . None apply to
h:inputHidden . |
onblur , onchange , onclick ,
ondblclick , onfocus , onkeydown ,
onkeypress , onkeyup ,
onmousedown , onmousemove ,
onmouseout , onmouseover ,
onselect |
DHTML events. None apply to h:inputHidden . |
Attributes for h:outputText
and h:outputFormat
Attribute |
Description |
escape |
If set to true, escapes <, >, and & characters. Default
value is true . |
binding , converter , id ,
rendered , styleClass , value |
Basic attributes |
style , title |
HTML 4.0 |
Attributes for h:outputLabel
Attribute |
Description |
for |
The ID of the component to be labeled. |
binding , converter , id ,
rendered , value |
Basic attributes |
Attributes for h:graphicImage
Attribute |
Description |
library 2.0,
name 2.0 |
The resource library (subdirectory of resources ) and
file name (in that subdirectory) |
binding , id , rendered ,
value |
Basic attributes |
alt , dir , height ,
ismap , lang , longdesc ,
style , styleClass , title ,
url , usemap , width |
HTML 4.0 |
onblur , onchange , onclick ,
ondblclick , onfocus , onkeydown ,
onkeypress , onkeyup ,
onmousedown , onmousemove ,
onmouseout , onmouseover ,
onmouseup |
DHTML events |
Attributes for h:commandButton
, h:commandLink
,
h:button
, and h:link
Attribute |
Description |
action (command tags) |
Navigation outcome string or method expression of type String
() |
outcome 2.0
(non-command tags) |
Value expression yielding the navigation outcome |
fragment 2.0
(non-command tags) |
Fragment to be appended to URL. Don't include the #
separator. |
actionListener |
Method expression of type void (ActionEvent) |
charset |
For h:commandLink only—The character encoding of
the linked reference |
image (button tags) |
For h:commandButton only—A context-relative path
to an image displayed in a button. If you specify this attribute, the
HTML input’s type will be image. |
immediate |
A boolean. If false (the default), actions and action listeners are
invoked at the end of the request life cycle; if true, actions and
action listeners are invoked at the beginning of the life cycle. |
type |
For h:commandButton : The type of the generated input
element: button , submit , or
reset . The default, unless you specify the image
attribute, is submit . For h:commandLink and
h:link : The content type of the linked resource; for
example, text/html, image/gif, or audio/basic |
value |
The label displayed by the button or link |
binding , id , rendered |
Basic attributes |
accesskey , dir , disabled
(h:commandButton only), lang ,
readonly , style , styleClass ,
tabindex , title
link tags only: charset ,
coords , hreflang , rel ,
rev , shape , target
|
HTML 4.0 |
onblur , onclick , ondblclick ,
onfocus , onkeydown , onkeypress ,
onkeyup , onmousedown ,
onmousemove , onmouseout ,
onmouseover , onmouseup |
DHTML events |
Attributes for h:outputLink
Attribute |
Description |
accesskey , binding , converter ,
id , lang , rendered ,
value |
Basic attributes |
charset , coords , dir ,
hreflang , lang , rel ,
rev , shape , style ,
styleClass , tabindex , target ,
title , type |
HTML 4.0 |
onblur , onchange , onclick ,
ondblclick , onfocus , onkeydown ,
onkeypress , onkeyup ,
onmousedown , onmousemove ,
onmouseout , onmouseover ,
onmouseup |
DHTML events |
Attributes for h:selectBooleanCheckbox
,
h:selectManyCheckbox
, h:selectOneRadio
,
h:selectOneListbox
, h:selectManyListbox
,
h:selectOneMenu
, h:selectManyMenu
Attribute |
Description |
enabledClass , disabledClass |
CSS class for enabled/disabled
elements—h:selectOneRadio and
h:selectManyCheckbox only |
selectedClass 2.0,
unselectedClass 2.0 |
CSS class for selected/unselected
elements—h:selectManyCheckbox only |
layout |
Specification for how elements are laid out:
lineDirection (horizontal) or pageDirection
(vertical)—h:selectOneRadio and
h:selectManyCheckbox only |
collectionType 2.0 |
selectMany tags only: the name of a collection class
such as java.util.TreeSet
|
hideNoSelectionOption 2.0 |
Hide item marked as “no selection option” |
binding , converter , id ,
immediate , required , rendered ,
validator , value ,
valueChangeListener |
Basic attributes |
accesskey , border , dir ,
disabled , lang , readonly ,
style , styleClass , size ,
tabindex , title |
HTML 4.0—border only for
h:selectOneRadio and h:selectManyCheckbox ,
size only for h:selectOneListbox and
h:selectManyListbox . |
onblur , onchange , onclick ,
ondblclick , onfocus , onkeydown ,
onkeypress , onkeyup ,
onmousedown , onmousemove ,
onmouseout , onmouseover ,
onmouseup , onselect |
DHTML events |
Attributes for h:message
and h:messages
Attribute |
Description |
for |
The ID of the component whose message is displayed—applicable
only to h:message |
errorClass , fatalClass ,
infoClass , warnClass |
CSS class applied to error/fatal/information/warning messages |
errorStyle , fatalStyle ,
infoStyle , warnStyle |
CSS style applied to error/fatal/information/warning messages |
globalOnly |
Instruction to display only global
messages—h:messages only. Default: false |
layout |
Specification for message layout: table or
list—h:messages only |
showDetail |
A boolean that determines whether message details are shown. Defaults
are false for h:messages , true for
h:message . |
showSummary |
A boolean that determines whether message summaries are shown.
Defaults are true for h:messages , false for
h:message . |
tooltip |
A boolean that determines whether message details are rendered in a
tooltip; the tooltip is only rendered if showDetail and
showSummary are true |
binding , id , rendered |
Basic attributes |
style , styleClass , title |
HTML 4.0 |
Attributes for h:panelGrid
Attribute |
Description |
bgcolor |
Background color for the table |
border |
Width of the table’s border |
cellpadding |
Padding around table cells |
cellspacing |
Spacing between table cells |
columns |
Number of columns in the table |
frame |
frame Specification for sides of the frame surrounding the table that
are to be drawn; valid values: none , above ,
below , hsides , vsides ,
lhs , rhs , box ,
border |
headerClass , footerClass |
CSS class for the table header/footer |
rowClasses , columnClasses |
Comma-separated list of CSS classes for rows/columns |
rules |
Specification for lines drawn between cells; valid values:
groups , rows , columns ,
all |
summary |
Summary of the table’s purpose and structure used for
non-visual feedback such as speech |
binding , id , rendered ,
value |
Basic attributes |
dir , lang , style ,
styleClass , title , width |
HTML 4.0 |
onclick , ondblclick ,
onkeydown , onkeypress , onkeyup ,
onmousedown , onmousemove ,
onmouseout , onmouseover ,
onmouseup |
DHTML events |
Attributes for h:panelGroup
Attribute |
Description |
binding , id , rendered |
Basic attributes |
style , styleClass |
HTML 4.0 |
Attributes for h:dataTable
Attribute |
Description |
bgcolor |
Background color for the table |
border |
width of the table's border |
cellpadding |
Padding around table cells |
cellspacing |
Spacing between table cells |
first |
index of the first row shown in the table |
frame |
Specification for sides of the frame surrounding the table should be
drawn; valid values: none , above ,
below , hsides , vsides ,
lhs , rhs , box ,
border |
headerClass , footerClass |
CSS class for the table header/footer |
rowClasses , columnClasses |
comma-separated list of CSS classes for rows/columns
|
rules |
Specification for lines drawn between cells; valid values:
groups , rows , columns ,
all |
summary |
summary of the table's purpose and structure used for non-visual
feedback such as speech |
var |
The name of the variable created by the data table that represents
the current item in the value |
binding , id , rendered ,
value |
Basic attributes |
dir , lang , style ,
styleClass , title , width |
HTML 4.0 |
onclick , ondblclick ,
onkeydown , onkeypress , onkeyup ,
onmousedown , onmousemove ,
onmouseout , onmouseover ,
onmouseup |
DHTML events |
Attributes for h:column
Attribute |
Description |
headerClass 1.2,
footerClass 1.2 |
CSS class for the column's header/footer |
binding , id , rendered |
Basic attributes |
Facelets Tags 2.0
Tag |
Description |
ui:define |
Give a name to content for use in a template
name |
the name of the content |
|
ui:insert |
If a name is given, insert named content if defined or use the child
elements otherwise. If no name is given, insert the content of the tag
invoking the template.
name |
the name of the content |
|
ui:composition |
Produces content from a template after processing child elements
(typically ui:define tags) Everything outside the
ui:composition tag is ignored.
template |
The template file, relative to the current page |
|
ui:component |
Like ui:composition , but makes a JSF component
binding , id |
Basic attributes |
|
ui:decorate , ui:fragment |
Like ui:composition , ui:component , but does
not ignore the content outside the tag |
ui:include |
Include plain XHTML, or a file with a ui:composition or
ui:component tag
src |
The file to include, relative to the current page |
|
ui:param |
Define a parameter to be used in an included file or template
name |
Parameter name |
value
|
A value expression (can yield an arbitrary object) |
|
ui:repeat |
Repeats the enclosed elements.
value |
A List , array, ResultSet , or
object |
offset , step , size |
starting index, step size, ending index of the iteration |
var |
Variable name to access the current element |
varStatus |
Variable name to access the iteration status, with integer
properties begin , end ,
index , step and Boolean properties
even , odd , first ,
last |
|
ui:debug |
Shows debug info when CTRL+SHIFT+a key is pressed
hotkey |
the key to press (default d ) |
rendered |
true (default) to activate |
|
ui:remove |
Do not include the contents (useful for comments or temporarily
deactivating a part of a page) |
About the Author
Cay S. Horstmann has written many books on C++, Java and object-oriented
development, is the series editor for Core Books at Prentice-Hall and a
frequent speaker at computer industry conferences. For four years, Cay was VP
and CTO of an Internet startup that went from 3 people in a tiny office to a
public company. He is now a computer science professor at San Jose State University. He was elected Java
Champion in 2005.
Recommended Book
Core JavaServer Faces is the Sun Microsystems book on the JavaServer Faces
technology. Authors David Geary and Cay Horstmann delve into all facets of JSF
development, offering systematic best practices for building robust
applications and maximizing developer productivity. Drawing on unsurpassed
insider knowledge of the Java platform, they present solutions, hints, tips,
and "how-tos" for writing superior JSF production code, without requiring prior
knowledge of JSF, JSP, or servlets.