JSF 2.0 Group Blog

Tuesday Jul 15, 2008

JSF 2 Orientation

Let me get this blog started by answering a simple question:

What is JavaServer Faces 2.0, and why should I care?

JavaServer Faces is the standard web application framework for the Java platform. JSF 2.0 is the first major update of the specification since its initial release back in 2004 (yep, JSF is four years old now). JSF 1.2, which came out in 2006, focused on fixing major incompatibility problems with JSP, and also lots of other issues. But JSF 2.0 is the first chance for us to take a step back, analyze what we've learned, and come up with some great new features and enhancements.

You may have noticed that there were two years between JSF 1.1 and 1.2. For better or worse, this is average for JSRs. When JSF 2 comes out, more than two years will have passed since 1.2 was released. Two years is a lot of time in the web development space. It's inevitable that there will be new some trend, feature, or technology during that time frame. Fortunately, innovation doesn't stand still, and dozens of excellent libraries, tools, and UI components have been built on top of JSF. These extensions, made possible by JSF's powerful architecture, have filled in missing functionality and solved common pain points.

So, here's a more concrete answer:

JSF 2 will include all of the key improvements developers have wanted over the past few years.

Why? Because those of us on the Expert Group have paid attention to the community, both in terms of looking at existing solutions and gathering common issues. Ed Burns, the JSF 2 co-spec lead handled this in a pretty methodical manner, as explained in his JSF 2 One Pager.

The other key thing is that the JSF 2 Java Specification Request is very broad. This keeps us from being constrained (as we were with JSF 1.2), but it does mean that everything mentioned in the JSR may not necessarily be in the final release. There are, however, four key focus areas of focus: Ease of Development, New Features, Runtime Performance and Scalability, and Adoption.

Here's the list of major items we're currently tackling:


  • Resource management (stylesheet, images, etc.)
  • Ajax component interoperability
  • Simplified component development
  • Integration of Facelets (with ideas from JSFTemplating)
  • Bookmarkable URLs
  • Zero deployment time
  • Additional scopes
  • Improved error reporting

Now, don't get me wrong -- we're considering other items. These are just the big ones.

These big ticket items have some subtle implications. For example, Ajax component interoperability implies a thin JavaScript layer provided by a JSF implementation. Zero deployment time implies auto-loading of JSF artifacts, and also support for scripting languages such as Groovy. This has already been implemented in the reference implementation and is also being implemented in MyFaces, although it's not yet in the spec). Simplified component development means you'll be able to write a JSF component with a single file.

If you want to keep up with the progress of JSF 2.0, there are few key places you should know about:

And of course, keep your eye on this blog and JSFCentral. Here I'll keep you up to date on the expert group's progress, and also point out resources as they become available.

Comments:

The main reason I never adopted JSF is the difficulty in developing components. A component based framework should make it easy to reuse portions of the code.

JSP 2.0 finally made custom tags (tag files) useable. The JSP 1.2 version tag libraries was not good enough because it required lots of programming in a "different" language (Java) to reuse.

JSF seems to have the same flaw and it did not learn from past experiences. Reuse should be very simple. Or programmers won't reuse.

That was the difference between languages like Pascal and BASIC, the difference between Java and C.

Posted by am on July 19, 2008 at 09:36 AM EDT #

in my opinion, the world will never have a great web app framework as Struts!

Regards,

Posted by Armen on July 20, 2008 at 02:37 AM EDT #

Kito -- is there any information on how the JSF 2.0 spec is going to address bookmarkable URL's? I see it in your list of items, but have not seen any details on this...

M

Posted by Matt on July 23, 2008 at 06:37 PM EDT #

am: I agree -- components should be simpler. As the list says, this is something we're currently working on. I encourage you to check it out when it's released. You'll be pleasantly surprised.

Posted by Kito D. Mann on July 30, 2008 at 11:15 PM EDT #

M: we're still working this one out. it will be influenced by what Seam does, but that's about all I know at this point.

Posted by Kito D. Mann on July 30, 2008 at 11:18 PM EDT #

This blog Is very informative , I am really pleased to post my comment on this blog . It helped me with ocean of knowledge so I really belive you will do much better in the future . Good job web master .

Posted by John Beck Real Estate on October 08, 2008 at 05:46 AM EDT #

Hey guys. I don't know how much work has already been done on this, but please take a look at what I've got here. I think that the way Seam does this is good for the most part, but there are some improvements here.

Seam causes the developer to handle a lot of parameter parsing manually, but there's no need for that if you just submit each form request back to the mapped URL instead of the JSF view ID.

I've reduced my page bean form handling code by about 4 lines per method, and my XHTML is a good deal clearer as well since you don't need to pass form values back into the app to preserve state that is usually represented by the URL in most other web frameworks. (Action methods re-parse the URL and process on every request, first time and also on page submit)

Just a shameless plug!
Lincoln

http://ocpsoft.com/prettyfaces/

Posted by Lincoln on November 17, 2008 at 10:31 PM EST #

Post a Comment:
  • HTML Syntax: Allowed

Calendar

Feeds

Search

Links

Navigation

Referrers