0% found this document useful (0 votes)
103 views

Java Server Faces

This document provides an overview of Java Server Faces (JSF) presented by Jay Meyer. It discusses the history and motivations for JSF, details on how JSF and frameworks like Apache MyFaces and JBoss Seam work, and demos of building applications with each. It also covers related topics like Facelets, Tomahawk components, and the future of JSF.

Uploaded by

Ponezhil Ramu
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
103 views

Java Server Faces

This document provides an overview of Java Server Faces (JSF) presented by Jay Meyer. It discusses the history and motivations for JSF, details on how JSF and frameworks like Apache MyFaces and JBoss Seam work, and demos of building applications with each. It also covers related topics like Facelets, Tomahawk components, and the future of JSF.

Uploaded by

Ponezhil Ramu
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 24

Java Server Faces

St. Louis JavaSIG June 8, 2006


Jay Meyer,
Harpoon Technologies
About Me
 Master CS from Washington Univ. (wustl.edu)
 Software developer for 14 years (1992)
 Java Web development since 1999
 Certified JBoss Application Developer
 Recent projects use Struts, Spring, Hibernate,
JBoss, Oracle
 Hibernate consulting thru HarpoonTech, a
JBoss partner
Summary
 Brief History of JSF
 Motivations for JSF, the Java Landscape
 JSF details
 Demo apps in MyFaces & Seam
What is Java Server Faces?
 JSF is a spec which defines a component-based MVC
framework
 JSF 1.2 is included in the larger JEE5 spec
 The spec was developed by involving many people
from orgs like Sun, Apache, IBM, Oracle
 Not tied to a Web framework, nor a thick-client GUI
– theoretically could be applied to either
 Implementations, frameworks:
 Sun RI vs. Apache MyFaces
 JBoss Seam vs. Apache Struts 2 Shale
 IBM, Oracle have proprietary solutions
The Problem with Web apps

 HTML? HTML? Java people like Objects, HTML is not


Objects
 Web programming is more difficult than GUI programming
 Java programming is hard – and J2EE is even more difficult:
Servlets? JSP? EJBs!?!
 Microsoft has VisualStudio which turns web programming
into drag-and-drop, that looks easy! 10 minute demo!
Answer: a Framework!
(yet another framework, of course)

 Struts – reduced lines of code, made apps


pretty complex, created a niche of skilled
Struts mercenaries
 WebWork – fixed some of the Struts hassle
 SpringMVC – brought powerful AOP
concepts to web dev
 Tapestry – JSP? dump it, XML rules!
MVC
WARS
 any Web apps in 2006 means seeing a mix of Struts,
Tapestry, Spring MVC, and Webwork (consultant:
which one pays the best?)
 the battle rages on, who will win? how can you tell
who won? Trust Craig? Trust Rod? How can a OSS
project define victory?
 Converting legacy apps: Struts is dead! long live
Struts 2 Action and Struts 2 Shale!!!
 How can I possibly pick one for a new project, when
the technology is under attack?
JSF to the rescue
 Make Committees, Not War!
 get the big players together to solve MVC problems in a
standard way, argue, compromise, repeat... publish final
Spec
 Use components, not actions, more like Swing, less like
Struts
 Set a standard so we can build derivative products like
IDEs with drag-n-drop ease, without worrying about
change
 extensible standard to allow growth (plugins)
 and the main objective...
errr... What’s a component?
 the JSF spec defines a standard set of
components and relationships
 the View layer (e.g. JSP) and the Java code on
the server use these components to interact and
pass data
 JSF tree is the current set of components in a
Java object graph
 Struts, Webwork, SpringMVC use actions, not
components
typical JSF component tree
View

Form

input

input

combo

command
How does Apache MyFaces work?
 jar file for deployment on Tomcat or any J2EE
container – myfaces-all.jar
 Controller servlet, XML config file, JSP, a pile
of base classes, and custom tags out the wazoo
(of course! just like all the other frameworks!)
MyFaces architecture
J2EE server

Faces
Servlet
my App

base classes

faces-config.xml
MyFaces Demo
 I used: Eclipse, Java5, JBoss 4 (JBossIDE)
 Register a user
 the Bean: Registration
 the view : HTML and JSP
 the Action Controller
 the web.xml
 faces-config.xml
 navigation
What is Seam?
 Seam is a new product from JBoss, (OSS, free
as in beer and speech)
 Founded by Gavin King, Hibernate creator
 uses Java5 and EJB3
 goal: use the exact same objects for
persistence and rendering the view layer:
abolish glue code and DTO objects
 combines MyFaces, EJB3
Seam Demo
 the Bean: User EJB3
 the view : HTML and JSP
 the Action: Register SSB
 Seam in the faces-config.xml?
Next for Seam?
 Reverse Engineering – make a whole app from
a set of database tables
Facelets
 Totally replace JSPs, uses XHTML instead
 Integrates tightly with JSF
 faster and leaner than JSPs – same idea as
Tapestry
 avoids serious JSP / JSF integration issues
Seam architecture
JSP Facelets

Sun JSF RI MyFaces

Seam Framework

EJB3 Hibernate3

SQL DB
Tomahawk
 Apache’s extended JSF components, ships
with MyFaces
 Calendar
 Tree
 advanced inputText
the Future
 continued Component development, similar to
taglib dev with Struts
 more tool dev – Eclipse plugins, GUI designers
 Facelets general acceptance instead of JSP
 Seam innovation from Gavin King, JBoss also
JSR 299 WebBeans just started
 Shale? Will Craig McClanahan work on Shale
or just Struts 2 Action (aka Webwork)
Glossary
 JSF – JavaServer Faces
 JEE5 – the newest Java App Server spec, includes EJB3, JSF etc.
 MyFaces – Apache’s JSF impl, completely replaces Sun’s ref impl for JSF
 Tomahawk – Apache’s set of components to extend JSF, comes with
MyFaces
 Facelets – replacement for JSP, interprets XML instead of JSP files to
produce web pages, integrated well with JSF
 Seam – JBoss’ framework that works with JSF to provide the glue between
JSF and EJB3 to reduce lines of code, includes MyFaces, Facelets (Gavin
King’s project)
 Shale – Apache Struts (Craig McClanahan) framework to provide a better
API for JSF, competes with Seam, needs JDK5, not EJB3
Resources
 JavaServer Faces by Hans Bergsten, OReilly
 http://java.sun.com/javaee/javaserverfaces/
 http://www.coreservlets.com/JSF-Tutorial/
 http://www.jboss.com/products/seam
 http://docs.jboss.com/seam/reference/en/html/tutorial.html
 http://struts.apache.org/struts-shale/index.html
 http://www.jsfcentral.com/articles/facelets_1.html
Questions?
contact: Jay Meyer [email protected]

discuss: Ideal architecture?


Facelets, MyFaces, Seam, EJB3, JBossAS, MySQL, Ubuntu
Linux?
discuss: worst of breed?
JSP, Struts 1.x, Sun JSF RI, Websphere, Toplink, DB/2,
Windows

You might also like