On Wednesday, Ed Burns, Consulting Staff Member at Oracle, presented a session, CON3870 -- “What’s New in JSF: A Complete Tour
of JSF 2.2,” in which he provided an update on recent developments in JavaServer Faces 2.2. He began by emphasizing that, “JavaServer Faces 2.2 continues
the evolution
of the Java EE standard user interface technology. Like previous releases, this iteration is very community-driven and transparent.” He pointed out that since JSF was introduced at
the 2001 JavaOne Keynote, it has had a long and successful run and has found a home in applications where
the UI logic resides entirely on
the server where
the model and UI logic is. In such cases,
the browser performs fairly simple functions. However, developers can take advantage
of the power
of browsers, something that Project Avatar is focused on by letting developers author their applications so
the UI logic is running on
the client and communicating to
the back
end via RESTful web services.
“Most importantly,” remarked Burns, “JSF 2.2 offers a really good migration path because even in
the scope
of one application you could have an app written with JSF that has its UI logic on
the server and, on a gradual basis, you could migrate parts
of the app over to use client-side technologies. This can be done at any level
of granularity – per page or per collection
of pages. It all depends on what you want to do.”
His presentation, which focused on
the basic new features
of JSF 2.2, began by restating
the scope
of JSF and encouraged attendees to check out Roger Kitain’s session: CON5133 “Techniques for Responsive Real-Time Web UIs.” Burns explained that JSF has endured because, “We still need web apps that are maintainable, localizable, quick to build, accessible, secure, look great and are fun to use.”
It is used on every continent –
the curious can go here to check out where its unofficial usage is tracked.
He emphasized
the significance
of the UI logic being substantially on
the server. This:
Separates Component Semantics from Rendering,
Allows components to “own” their little patch
of the UI -- encode/decode,
And offers a well-defined lifecycle: Inversion
of Control.
Burns reminded attendees that JSR-344,
the spec for JSF 2.2, is now on Java Community Process 2.8, a revised version
of the JCP that allows for more openness and transparency.
He then offered some tools for community access to JSF 2.2:
* Public java.net projects
spec http://jsf-spec.java.net/
impl http://jsf.java.net/ Open Source: GPL+Classpath Exception
* Mailing Lists
[email protected] Public readable archive, JSPA signed member read/write
[email protected] Public readable archive, any java.net member read/write All mail sent to jsr344-experts is sent to users.
* Issue Tracker
spec http://jsf-spec.java.net/issues/
impl http://jsf.java.net/issues/
JSF 2.2, which is JSR 344, has a Public Review Draft planned by December
2012 with no need for a Renewal Ballot.
The Early Draft Review
of JSR 344 was published on December 8, 2011. Interested developers are encouraged to offer their input. Six Big Ticket Features
of JSF 2.2
Burns summarized
the six big ticket features
of JSF 2.2:* HTML5 Friendly Markup Support
Pass through attributes and elements
* Faces Flows* Cross Site Request Forgery Protection* Loading Facelets via ResourceHandler* File Upload Component* Multi-Templating
He explained that he called it “HTML 5 friendly” because there is really nothing HTML 5 specific about it -- it could be 4. But it enables developers to use new elements that are present in HTML5 without having a JSF component library that is written to take advantage
of those specifically. It gives
the page author
the ability to use plain HTML5 to write their page, but to still take advantage
of the server-side available in JSF.
He presented a demo showing JSF 2.2’s ability to leverage
the expressiveness
of HTML5.
Burns then explained
the significance
of face flows, which offer function points and quantify how much work has taken place, something
of great value to JSF users.
He went on to talk about JSF 2.2.’s cross-site request forgery protection (CSRF) and offered details about how it protects applications against attack. Then he talked about JSF 2.2’s File Upload Component and explained that
the final specification will have Ajax and non-Ajax support.
The current milestone has non-Ajax support implemented. He then went on to explain its capacity to add facelets through ResourceHandler. Previously, JSF 2.0 added Facelets and ResourceHandler as disparate units; now in JSF 2.2
the two concepts are unified.
Finally, he explained
the concept
of multi-templating in JSF 2.2 and went on to discuss more medium-level features
of the release.
For an easy, low maintenance way
of staying in touch with JSF developments go to JSF’s Twitter page where every month or so, important updates are offered.