You are on page 1of 7

Brought to you by...

#21
tech facts at your fingertips
Get More Refcardz! Visit refcardz.com

CONTENTS INCLUDE:

JavaServer Faces
n
Development Process
n
Lifecycle
n
Faces-config.xml
n
The JSF Expression Language
JSF Core Tags
By Cay S. Horstmann
n

n
JSF HTML Tags and more...

These common tasks give you a crash course into using JSF.
ABOUT THIS REFCARD
Text field
JavaServer Faces (JSF) is the “official” component-based
page.jspx
view technology in the Java EE web tier. JSF includes a set <h:inputText value="#{bean1.luckyNumber}">
of predefined UI components, an event-driven programming
model, and the ability to add third-party components. JSF faces-config.xml
<managed-bean>
is designed to be extensible, easy to use, and toolable. This
<managed-bean-name>bean1</managed-bean-name>
refcard describes the JSF development process, standard JSF  <managed-bean-class>com.corejsf.SampleBean</
tags, the JSF expression language, and the faces-config.xml managed-bean-class>
configuration file.  <managed-bean-scope>session</managed-bean-scope>
</managed-bean>

DEVELOPMENT PROCESS com/corejsf/SampleBean.java


public class SampleBean {
public int getLuckyNumber() { ... }
A developer specifies JSF components in JSF pages,
public void setLuckyNumber(int value) { ... }
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. Entries in faces-config.xml contain Button
www.dzone.com

navigation rules and instructions for loading managed beans.


page.jspx

<h:commandButton value="press me" action="#{bean1.
servlet container
login}"/>
client devices web application
faces-config.xml
presentation application logic business logic <navigation-rule>
navigation
validation <navigation-case>
database
event handling <from-outcome>success</from-outcome>
JSF Pages Managed Beans <to-view-id>/success.jspx</to-view-id>
</navigation-case>
web
service <navigation-case>
JSF framework
<from-outcome>error</from-outcome>
<to-view-id>/error.jspx</to-view-id>
<redirect/>
</navigation-case>
A JSF page has the following structure:
</navigation-rule>
JSP Style Proper XML

<html> <?xml version="1.0" encoding="UTF-8"?>
<%@ taglib
 <jsp:root xmlns:jsp="http://java.sun.com/
uri="http:// JSP/Page"
java.sun.com/jsf/ xmlns:f="http://java.sun.com/jsf/core"
core" xmlns:h="http://java.sun.com/jsf/html"

prefix="f" %> version="2.0">
<jsp:directive.page contentType="text/

<%@ taglib

html;charset=UTF-8"/>
JavaServer Faces

uri="http://
<jsp:output omit-xml-declaration="no"
java.sun.com/jsf/
doctype-root-element="html"
html" doctype-public="-//W3C//DTD XHTML 1.0

prefix="h" %> Transitional//EN"
<f:view> doctype-system="http://www.w3.org/TR/

<head> xhtml1/
<title>...</ DTD/xhtml1-transitional.dtd"/>
title> <f:view>
</head> <html xmlns="http://www.w3.org/1999/
<body> xhtml">
<h:form> <head>
... <title>...</title>
</h:form> </head>
<body>
</body>
<h:form>...</h:form>
</f:view>
</body>
</html>
</html>
</f:view>
</jsp:root>

DZone, Inc. | www.dzone.com


2
JavaServer Faces
tech facts at your fingertips

Button, continued ...


<h:outputText value="#{msgs.goodbye}!"
com/corejsf/SampleBean.java
styleClass="goodbye">
public class SampleBean { ...
 public String login() { if (...) return
</body>
"success"; else return "error"; }
... faces-config.xml
}
<application>
<resource-bundle>
Radio buttons
<base-name>com.corejsf.messages</base-name>
page.jspx <var>msgs</var>
<h:selectOneRadio value="#{form.condiment}> </resource-bundle>
<f:selectItems value="#{form.condimentItems}"/> </application>
</h:selectOneRadio> com/corejsf/messages.properties
com/corejsf/SampleBean.java goodbye=Goodbye

public class SampleBean { com/corejsf/messages_de.properties


 private Map<String, Object> condimentItem = null;
public Map<String, Object> getCondimentItems() { goodbye=Auf Wiedersehen
if (condimentItem == null) {
styles.css
 condimentItem = new LinkedHashMap<String,
Object>(); .goodbye {
 condimentItem.put("Cheese", 1); // label, value font-style: italic;
condimentItem.put("Pickle", 2); font-size: 1.5em;
... color: #eee;
} }
return condimentItem;
} Table with links
public int getCondiment() { ... } Name
public void setCondiment(int value) { ... }
Washington, George Delete
...
Jefferson, Thomas Delete
}
Lincoln, Abraham Delete

Validation and Conversion Roosevelt, Theodore Delete

page.jspx page.jspx

<h:inputText value="#{payment.amount}" <h:dataTable value="#{bean1.entries}" var="row"
required="true"> styleClass="table" rowClasses="even,odd">
<f:validateDoubleRange maximum="1000"/> <h:column>
</h:inputText> <f:facet name="header">
<h:outputText value="#{payment.amount}"> <h:outputText value="Name"/>
<f:convertNumber type="currency"/> </f:facet>
<!-- number displayed with currency symbol and <h:outputText value="#{row.name}"/>
group separator: $1,000.00 --> </h:column>
</h:outputText> <h:column>
 <h:commandLink value="Delete" action="#{bean1.
Error Messages deleteAction}" immediate="true">
 <f:setPropertyActionListener target="#{bean1.
idToDelete}"
value="#{row.id}"/>
page.jspx </h:commandLink>
<h:outputText value="Amount"/> </h:column>
</h:dataTable>

<h:inputText id="amount" label="Amount"
value="#{payment.amount}"/> com/corejsf/SampleBean.java
<!-- label is used in message text -->
public class SampleBean {
<h:message for="amount"/>
private int idToDelete;
Resources and Styles  public void setIdToDelete(int value) {idToDelete
= value; }
page.jspx public String deleteAction() {
<head>  // delete the entry whose id is idToDelete
 <link href="styles.css" rel="stylesheet" return null;
type="text/css"/> }
... public List<Entry> getEntries() {...}
</head> ...
<body> }

DZone, Inc. | www.dzone.com


3
JavaServer Faces
tech facts at your fingertips

LIFECYCLE web.xml

response complete response complete <?xml version="1.0"?>


<web-app xmlns="http://java.sun.com/xml/ns/javaee"
request Restore Apply Request Process Process Process
View Values events Validations events xmlns:xsi="http://www.w3.org/2001/XMLSchemainstance"

xsi:schemaLocation="http://java.sun.com/xml/ns/javaee

render response
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"

response complete response complete version="2.5">
<servlet>
Render Process Invoke Process Update
response Model <servlet-name>Faces Servlet</servlet-name>
Response events Application events Values
 <servlet-class>javax.faces.webapp.FacesServlet</
conversion errors/render response servlet-class>
validation or conversion errors/render response <load-on-startup>1</load-on-startup>
</servlet>

<!-- Add this element to change the extension for


faces-config.xml JSF page files (Default: .jsp) -->
<context-param>
 <param-name>javax.faces.DEFAULT_SUFFIX</param-
The faces-config.xml file contains a sequence of the following name>
entries.
<param-value>.jspx</param-value>
n managed-bean </context-param>
1. description , display-name, icon (optional) <servlet-mapping>
2. managed-bean-name
<servlet-name>Faces Servlet</servlet-name>
3. managed-bean-class
<url-pattern>*.faces</url-pattern>
4. managed-bean-scope
5. managed-property (0 or more, other optional choices <!-- Another popular URL pattern is /faces/* -->

are map-entries and list-entries which are not </servlet-mapping>


shown here) <welcome-file-list>
1. description, display-name, icon (optional) <welcome-file>index.faces</welcome-file>
2. property-name
<!-- Create a blank index.faces (in addition to
3.  value (other choices are null-value, map-entries,
index.jspx) -->
list-entries which are not shown here)
<welcome-file>index.html</welcome-file>
n navigation-rule <!-- Use <meta http-equiv="Refresh" content=
1. description, display-name, icon (optional) "0; URL=index.faces"/> -->
2. from-view-id (optional, can use wildcards) </welcome-file-list>
3. navigation-case (1 or more) </web-app>
n from-action (optional, not common)
n from-outcome
n to-view-id THE JSF EXPRESSION LANGUAGE (EL)
n application
An EL expression is a sequence of literal strings and expressions
m resource-bundle
of the form base[expr1][expr2]... As in JavaScript, you
1. base-name
can write base.identifier instead of base['identifier'] or
2. var
m 
action-listener, default-render-kit-id,
base["identifier"]. The base is one of the names in the table
resource-bundle, view-handler, state-manager, el- below or a name defined in faces-config.xml.
resolver, property-resolver, variable-resolver,
header A Map of HTTP header parameters, containing only the first
application-extension (details not shown) value for each name.

headerValues A Map of HTTP header parameters, yielding a String[] array of


n converter all values for a given name.
m converter-id param A Map of HTTP request parameters, containing only the first
m converter-class value for each name.

m Optional initialization (not shown here) paramValues A Map of HTTP request parameters, yielding a String[] array of
all values for a given name.
n validator cookie A Map of the cookie names and values of the current request.
m validator-id
initParam A Map of the initialization parameters of this web application.
m validator-class
requestScope A Map of all request scope attributes.
m Optional initialization (not shown here)
sessionScope A Map of all session scope attributes.
n lifecycle
applicationScope A Map of all application scope attributes.
m phase-listener
facesContext The FacesContext instance of this request.
n component, factory, referenced-bean, render-kit,
view The UIViewRoot instance of this request.
faces-config-extension (details not shown)

DZone, Inc. | www.dzone.com


4
JavaServer Faces
tech facts at your fingertips

The JSF Expression Language (EL), continued JSF Core Tags, continued
There are two expression types: Tag Description/ Attributes

n Value expression: a reference to a bean property or an f:convertNumber Adds a number converter to a component
type number (default), currency , or
entry in a map, list, or array. Examples: percent
userBean.name calls getName or setName on the userBean pattern Formatting pattern, as defined in
java.text.DecimalFormat
object
maxFractionDigits Maximum number of digits in the
pizza.choices[var] calls pizza.getChoices( ).get(var) fractional part
or pizza.getChoices( ).put(var, ...) minFractionDigits Minimum number of digits in the
fractional part
n Method expression: a reference to a method and the maxIntegerDigits Maximum number of digits in the
object on which it is to be invoked. Example: integer part
minIntegerDigits Minimum number of digits in the
u
serBean.login calls the login method on the userBean integer part
object when it is invoked. integerOnly True if only the integer part is
parsed (default: false)
In JSF, EL expressions are enclosed in #{...} to indicate groupingUsed True if grouping separators are
deferred evaluation. The expression is stored as a string and used (default: true)
locale Locale whose preferences are to
evaluated when needed. In contrast, JSP uses immediate be used for parsing and formatting
evaluation, indicated by ${...} delimiters. currencyCode ISO 4217 currency code to use
when converting currency values
currencySymbol Currency symbol to use when
converting currency values
JSF CORE TAGS
f:validator Adds a validator to a component
validatorId The ID of the validator
Tag Description/ Attributes
f:validateDoubleRange Validates a double or long value, or the length of a string
f:view Creates the top-level view
f:validateLongRange minimum, maximum the minimum and maximum of the
locale The locale for this view. f:validateLength valid rang
renderKitId The render kit ID for this view
(JSF 1.2) f:loadBundle Loads a resource bundle, stores properties as a Map
basename The resource bundle name
beforePhase, Phase listeners that are called in
afterPhase every phase except "restore view" value The name of the variable that is bound to
the bundle map
f:subview Creates a subview of a view
f:selectitems Specifies items for a select one or select many component
binding, id, rendered Basic attributes
binding, id Basic attributes
f:facet Adds a facet to a component value Value expression that points to a
SelectItem, an array or Collection of
name the name of this facet SelectItem objects, or a Map mapping
labels to values.
f:attribute Adds an attribute to a component
name, value the name and value of the attribute to set f:selectitem Specifies an item for a select one or select many
component
f:param Constructs a parameter child component binding, id Basic attributes
name An optional name for this parameter itemDescription Description used by tools only
component.
itemDisabled Boolean value that sets the item’s
value The value stored in this component. disabled property
binding, id Basic attributes itemLabel Text shown by the item
itemValue Item’s value, which is passed to the
f:actionListener Adds an action listener or value change listener to a server as a request parameter
f:valueChangeListener component
value Value expression that points to a
type The name of the listener class SelectItem instance

f:setPropertyChange Adds an action listener to a component that sets a bean f:verbatim Adds markup to a JSF page
Listener (JSF 1.2) property to a given value. escape If set to true, escapes <, >, and &
characters. Default value is false.
value The bean property to set when the
action event occurs rendered (JSF 1.2) Basic attributes

binding, id The value to set it to

f:converter Adds an arbitary converter to a component


JSF HTML TAGS
converterId The ID of the converter

f:convertDateTime Adds a datetime converter to a component Tag Description

type date (default), time, or both h:form HTML form

dateStyle default, short, medium, long, or full h:inputText Single-line text input control

timeStyle default, short, medium, long, or full


h:inputTextarea Multiline text input control
pattern Formatting pattern, as defined in java.
text.SimpleDateFormat
h:inputSecret Password input control
locale Locale whose preferences are to be used
for parsing and formatting
h:inputHidden Hidden field
timezone Time zone to use for parsing and
formatting h:outputLabel Label for another
component for accessibility

DZone, Inc. | www.dzone.com


5
JavaServer Faces
tech facts at your fingertips

JSF HTML tags, continued Attributes for h:inputText ,


h:inputSecret, h:inputTextarea ,
Tag Description
and h:inputHidden
h:outputLink HTML anchor
Attribute Description
cols For h:inputTextarea only—number of columns
h:outputFormat Like outputText, but
formats compound immediate Process validation early in the life cycle
messages redisplay For h:inputSecret only—when true, the input
h:outputText Single-line text output field’s value is redisplayed when the web page is
reloaded
h:commandButton Button: submit, reset, or
pushbutton required Require input in the component when the form is
submitted
h:commandLink Link that acts like a register rows For h:inputTextarea only—number of rows
pushbutton.
valueChangeListener A specified listener that’s notified of value changes
h:message Displays the most recent Amount too much
message for a component Amount:'too much' is not a binding, converter, id, rendered, Basic attributes
number. required, styleClass, value,
Example: 99 validator

h:messages Displays all messages accesskey, alt, dir, HTML 4.0 pass-through attributes—alt, maxlength,
disabled, lang, maxlength, and size do not apply to h:inputTextarea. None
readonly, size, style, apply to h:inputHidden
tabindex, title
h:grapicImage Displays an image onblur, onchange, onclick, DHTML events. None apply to h:inputHidden
ondblclick, onfocus,
onkeydown, onkeypress,
h:selectOneListbox Single-select listbox onkeyup, onmousedown,
onmousemove, onmouseout,
onmouseover, onselect

h:selectOneMenu Single-select menu


Attributes for h:outputText and
h:outputFormat
Attribute Description

h:selectOneRadio Set of radio buttons escape If set to true, escapes <, >, and &
characters. Default value is true.
h:selectBooleanCheckbox Checkbox binding, converter, id, rendered, Basic at tributes
styleClass, value
h:selectManyCheckbox Multiselect listbox
style, title HTML 4.0
h:selectManyListbox Multiselect listbox

Attributes for h:outputLabel


Attribute Description
h:selectManyMenu Multiselect menu for The ID of the component to be labeled.
h:panelGrid HTML table binding, converter, id, rendered, Basic attributes
value
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 Attributes for h:graphicImage
Attribute Description
Basic Attributes binding, id, rendered, styleClass, value Basic attributes

Attribute Description alt, dir, height, ismap, lang, longdesc, style, HTML 4.0
title, url, usemap, width
id Identifier for a component
onblur, onchange, onclick, ondblclick, onfocus, DHTML events
binding Reference to the component that can be used in a backing
onkeydown, onkeypress, onkeyup, onmousedown,
bean
onmousemove, onmouseout, onmouseover,
rendered A boolean; false suppresses rendering onmouseup
styleClass Cascading stylesheet (CSS) class name
value A component’s value, typically a value binding Attributes for h:commandButton
valueChangeListener A method binding to a method that responds to value and h:commandLink
changes
Attribute Description
converter Converter class name
validator Class name of a validator that’s created and attached to a action If specified as a string: Directly specifies an
component outcome used by the navigation handler to
determine the JSF page to load next as a result
required A boolean; if true, requires a value to be entered in the of activating the button or link If specified as a
associated field method binding: The method has this signature:
String methodName(); the string represents
the outcome
Attributes for h:form actionListener A method binding that refers to a method with
this signature: void methodName(ActionEvent)
Attribute Description charset For h:commandLink only—The character
binding, id, rendered, styleClass Basic attributes encoding of the linked reference
image For h:commandButton only—A context-relative
accept, acceptcharset, dir, enctype, lang, HTML 4.0 attributes path to an image displayed in a button. If you
style, target, title (acceptcharset corresponds to specify this attribute, the HTML input’s type will
HTML accept-charset) be image.
onblur, onchange, onclick, ondblclick, onfocus, DHTML events immediate A boolean. If false (the default), actions and action
onkeydown, onkeypress, onkeyup, onmousedown,
listeners are invoked at the end of the request
onmousemove, onmouseout, onmouseover, onreset,
life cycle; if true, actions and action listeners are
onsubmit
invoked at the beginning of the life cycle.

DZone, Inc. | www.dzone.com


6
JavaServer Faces
tech facts at your fingertips

h:commandButton and h:commandLink , Attributes for h:message and h:messages


continued
Attribute Description
type For h:commandButton: The type of Attribute Description
the generated input element: button,
submit, or reset. The default, unless you for The ID of the component whose message is displayed—applicable
specify the image attribute, is submit. For only to h:message
h:commandLink: The content type of the
linked resource; for example, text/html, image/ errorClass CSS class applied to error messages
gif, or audio/basic errorStyle CSS style applied to error messages
value The label displayed by the button or link.
fatalClass CSS class applied to fatal messages
You can specify a string or a value reference
expression. fatalStyle CSS style applied to fatal messages
accesskey, alt, binding, id, lang, Basic attributes globalOnly Instruction to display only global messages—applicable only to
rendered, styleClass, value
h:messages. Default: false
coords (h:commandLink only), dir, HTML 4.0
disabled (h:commandButton only), infoClass CSS class applied to information messages
hreflang (h:commandLink only),
lang, readonly, rel (h:commandLink
infoStyle CSS style applied to information messages
only), rev (h:commandLink only), layout Specification for message layout: table or list—applicable only
shape (h:commandLink only), style, to h:messages
tabindex, target (h:commandLink
only), title, type showDetail A boolean that determines whether message details are shown.
onblur, onchange, onclick, DHTML events Defaults are false for h:messages, true for h:message
ondblclick, onfocus, onkeydown,
onkeypress, onkeyup, onmousedown, showSummary A boolean that determines whether message summaries are
onmousemove, onmouseout, shown. Defaults are true for h:messages, false for h:message
onmouseover, onmouseup, onselect
tooltip A boolean that determines whether message details are rendered
in a tooltip; the tooltip is only rendered if showDetail and
showSummary are true

warnClass CSS class for warning messages


Attributes for h:outputLink warnStyle CSS style for warning messages

Attribute Description binding, id, Basic attributes


rendered,
accesskey, binding, converter, id, Basic attributes styleClass
lang, rendered, styleClass, value
style, title HTML 4.0
charset, coords, dir, hreflang, lang, HTML 4.0
rel, rev, shape, style, tabindex,
target, title, type
Attributes for h:panelGrid
onblur, onchange, onclick, ondblclick, DHTML events
onfocus, onkeydown, onkeypress, onkeyup, Attribute Description
onmousedown, onmousemove, onmouseout,
onmouseover, onmouseup bgcolor Background color for the table

border Width of the table’s border

Attributes for: cellpadding Padding around table cells

h:selectBooleanCheckbox , cellspacing Spacing between table cells

h:selectManyCheckbox , h:selectOneRadio , columnClasses Comma-separated list of CSS classes for columns

h:selectOneListbox , h:selectManyListbox , columns Number of columns in the table


h:selectOneMenu , h:selectManyMenu footerClass CSS class for the table footer

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
Attribute Description
headerClass CSS class for the table header
disabledClass CSS class for disabled elements—for
h:selectOneRadio and h:selectManyCheckbox rowClasses Comma-separated list of CSS classes for columns
only rules Specification for lines drawn between cells; valid values:
groups, rows, columns, all
enabledClass CSS class for enabled elements—for
h:selectOneRadio and h:selectManyCheckbox summary Summary of the table’s purpose and structure used for
only non-visual feedback such as speech
layout Specification for how elements are laid out: binding, id, rendered, Basic attributes
lineDirection (horizontal) or pageDirection styleClass, value
(vertical)—for h:selectOneRadio and
h:selectManyCheckbox only dir, lang, style, HTML 4.0
title, width
binding, converter, id, Basic attributes
immediate, styleClass, onclick, ondblclick, DHTML events
required, rendered, onkeydown, onkeypress,
validator, value, onkeyup, onmousedown,
valueChangeListener onmousemove,
onmouseout,
accesskey, border, dir, HTML 4.0—border is applicable to onmouseover,
disabled, lang, readonly, h:selectOneRadio and h:selectManyCheckbox onmouseup
style, size, tabindex, only. size is applicable to h:selectOneListbox and
title h:selectManyListbox only

onblur, onchange, onclick,


ondblclick, onfocus,
DHTML events
Attributes for h:panelGroup
onkeydown, onkeypress,
onkeyup, onmousedown, Attribute Description
onmousemove, onmouseout, binding, id, rendered, Basic attributes
onmouseover, onmouseup, styleClass
onselect
style HTML 4.0

DZone, Inc. | www.dzone.com


7
JavaServer Faces
tech facts at your fingertips

Attributes for h:dataTable Attributes for h:dataTable , continued


Attribute Description Attribute Description
bgcolor Background color for the table var The name of the variable created by the data table that
represents the current item in the value
border Width of the table’s border
binding, id, rendered, Basic attributes
cellpadding Padding around table cells styleClass, value
cellspacing Spacing between table cells dir, lang, style, title, HTML 4.0
columnClasses Comma-separated list of CSS classes for columns width

first Index of the first row shown in the table onclick, ondblclick, DHTML events
onkeydown, onkeypress,
footerClass CSS class for the table footer onkeyup, onmousedown,
frame Frame Specification for sides of the frame surrounding the onmousemove, onmouseout,
table that are to be drawn; valid values: none, above, below, onmouseover, onmouseup
hsides, vsides, lhs, rhs, box, border
headerClass CSS class for the table header Attributes for h:column
rowClasses Comma-separated list of CSS classes for rows Attribute Description
rules Specification for lines drawn between cells; valid values: headerClass (JSF 1.2) CSS class for the column's header
groups, rows, columns, all
footerClass (JSF 1.2) CSS class for the column's footer
summary Summary of the table's purpose and structure used for non-
visual feedback such as speech binding, id, rendered Basic attributes

ABOUT THE AUTHOR RECOMMENDED BOOK

Cay S. Horstmann
Core JavaServer Faces
Cay S. Horstmann has written many books on C++, Java and object-
oriented development, is the series editor for Core Books at Prentice-Hall delves into all facets of
and a frequent speaker at computer industry conferences. For four years, JSF development, offering
Cay was VP and CTO of an Internet startup that went from 3 people in a systematic best practices for
tiny office to a public company. He is now a computer science professor building robust applications
at San Jose State University. He was elected Java Champion in 2005.
and maximizing developer
List of recent books/publications productivity.
• C ore Java, with Gary Cornell, Sun Microsystems Press 1996 - 2007 (8 editions)
• Core JavaServer Faces, with David Geary, Sun Microsystems Press, 2004-2006 (2 editions)
• Big Java, John Wiley & Sons 2001 - 2007 (3 editions)
BUY NOW
Blog Web site
books.dzone.com/books/jsf
http://weblogs.java.net/blog/cayhorstmann http://horstmann.com

Get More FREE Refcardz. Visit refcardz.com now!


Upcoming Refcardz: Available:
Core Seam Essential Ruby Core CSS: Part I

Core CSS: Part III Essential MySQL Struts2


JUnit and EasyMock Core .NET
Hibernate Search
Getting Started with MyEclipse Very First Steps in Flex
FREE
Equinox Spring Annotations C#

EMF Core Java Groovy


Core CSS: Part II NetBeans IDE 6.1 Java Editor
XML
PHP RSS and Atom
JSP Expression Language Getting Started with JPA GlassFish Application Server
ALM Best Practices JavaServer Faces Silverlight 2 Design Patterns
Published June 2008
HTML and XHTML Visit refcardz.com for a complete listing of available Refcardz.

DZone, Inc.
1251 NW Maynard
ISBN-13: 978-1-934238-19-6
Cary, NC 27513
ISBN-10: 1-934238-19-8
50795
888.678.0399
DZone communities deliver over 4 million pages each month to 919.678.0300
more than 1.7 million software developers, architects and decision
Refcardz Feedback Welcome
makers. DZone offers something for everyone, including news, refcardz@dzone.com
$7.95

tutorials, cheatsheets, blogs, feature articles, source code and more. Sponsorship Opportunities 9 781934 238196
“DZone is a developer’s dream,” says PC Magazine. sales@dzone.com
Copyright © 2008 DZone, Inc. All rights reserved. No part of this publication may be reproduced, stored in a retrieval system, or transmitted, in any form or by means electronic, mechanical, Version 1.0
photocopying, or otherwise, without prior written permission of the publisher. Reference: Core JavaServer Faces, David Geary and Cay S. Horstmann, Sun Microsystems Press, 2004-2006.

You might also like