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.