Googling for thoughts on Java Server Faces

I have read the JSF spec.  I now understand that JSF is a UI component framework that is protocol and markup independent, but aimed at HTML-based webapps.  Now I need to play around with the Early Access implementation to really get a grip on JSF.  

I decided to first do some googling and mail-list searches to see what others have said about JSF. None of the major Java magazines have written about JSF yet, but I did have some luck.  I found couple of quotes from Craig McClanahan:

In general terms, I look at JavaServer Faces (and the JSP Standard Tag Library) as "mainstream" efforts that will, ultimately, supplant the use of the majority of the Struts custom tag libraries. We'll continue to support the existing libraries (there are *way* too many apps using them to consider deprecating them :-)
...
Happily, the Struts controller doesn't care what technology was used to create the user interface -- it deals with request parameters and request dispatcher forwards. We may need to do a little bit of glue work to emulate some of the "automatic" interactions between form beans and the UI components, but I don't anticipate any significant hurdles in this respect. [Craig McClanahan, Struts-dev mailing list, 1/14/2002]
That sounds good.  Sounds like Struts, and possibly other web MVC frameworks, can support JSF.  If Struts and Webwork both support JSF, does that mean that I can develop a JSF UI Component and then use it in either Struts or WebWork without modification?  I hope the answer is yes.  

I also hope that non-JSP solutions, such as Velocity, can support JSF.  I did see some hints of this in the spec, so maybe there is hope.

Moving on, I also found an insight from from David Geary on the Struts dev list:
Another way to think of Faces is this: Take the Struts html tags and rewrite them so that instead of producing html directly, the tags delegate to a component that produces HTML. And you can plug your own custom components into those tags for a different markup language (although you'll want to change the html prefix to something else, like faces). Finally, you can create a new tag and a corresponding component to implement something wild like a WAP calendar. [David Geary, Struts-dev mailing list, 9/6/2002]
That sounds good too, except that it does sound rather JSP centric.

I also found some criticism of JSF:

Inside the spec, I see a bunch of standard UI components, but I don't see any complex ones like Table or Tree, everything looks pretty basic, that's just too bad, I was hoping that they would do something like Swing.

Aha, looks like there's some mention of creating components recursively. Events, that are independent of HTTP, unlike Struts. Now, that they've defined a new Event framework, I'm not sure if this is compatible with Struts.

So, where's the beef? My quick browse of the spec tells me that there are only a few new things that are in this. The newest thing is some kind of standardization of UI components, something completely lacking in the Java world. As far as a toolkit I can leverage, well I don't think I'll find it here. [ceperez, ::Manageability:: weblog]

The reason you see no complex UI components is that JSF is supposed to be a framework and not a toolkit.  Sure, JSF includes some concrete UI Components, but just the basics - without those the JSF  Reference Implemenation would be useless.

So far, I like what I see of JSF.

MVC not suitable for webapps?

It is rare that you hear anybody question the suitability of MVC for the web, so cheers to <a href= "http://www.beblogging.com/blog/20020910-150241">Ugo and <a href= "http://marc.theaimsgroup.com/?l=xml-cocoon-dev&m=102494541728419&w=2">Stephano for doing just that. I'm not saying that I agree with them, but I do like Stephano's point that MVC is not the end of the road in terms of webapp architecture.

Ugo says that webapps are based on a stateless protocol. That is true, but in practice essentially all webapps are stateful thanks to cookies and URL rewriting. So, saying MVC is not suitable for the web because webapps are stateless does not make sense to me.

Java Server Faces tutorial

In addition to the recently posted Java Server Faces Spec, Sun has also posted on the JSF homepage a Tutorial, an Early Access Implementation and a FAQ. I'm still trying to digest this stuff. I do not understand enough to comment on it yet.

Main | Next day (Sep 11, 2002) »