JSF 2.0: A Report from the Trenches

You are here:

I have given several JSF 2.0 training courses in the USA in the last several months, and I also gave a talk on JSF 2.0 at a large conference in Bangalore India. For the most part, the US short course students were from healthcare and aerospace companies, but I taught some public courses where there was a smattering of students from other fields. Almost all of them were already starting or about to start some real-life JSF 2.0 projects.

So, I thought I would pass on general reactions and trends among my students and clients. The short courses in particular represent only a few companies, so trends there may not be representative. YMMV.

1) Overall: generally positive reactions. In general, the reactions were extremely positive. Some of the students had low opinions of JSF 1.x (either from direct use or from word-of-mouth), and came in with low expectations. Almost without exception, they went away pleased with JSF 2.0. Several commented that it was much better than they had expected.

2) Other frameworks. At the conference, there were a few zealots for other frameworks. After the talk, one person said "Oh, Wicket is 10 times better than JSF 2". And another said the same for ZK, and another for Tapestry. I have no doubt that there are many very good features of those other frameworks, but my response to their comments was this:http://www.indeed.com/jobtrends?q=struts%2C+jsf%2C+wicket%2C+tapestry%2C+zk

3) Struts 2 vs. JSF 2. To my surprise, I got a number of comments from Struts 1 users that thought they should move from Struts 1 to JSF 2, rather than to Struts 2. I probably have much too small of a sample size to know if this is a general trend.

4) Wanted Eclipse support. These courses were taught with Eclipse 3.5, and several students complained about the lack of support in Eclipse for the facelets tags and for the faces-config.xml file. It was also a pain in the neck to manually copy in the JAR files (jsf-api.jar, jsf-impl.jar, jstl-api.jar, jstl-impl.jar) and the web.xml entries for each new Dynamic Web Project. (And, copying/renaming Dynamic Web projects in Eclipse is buggy because references to the old project name are left in the new project.) I'll make a followup posting soon about Eclipe 3.6 (Helios) support for JSF 2.

5) Most were deploying on a servlet engine. Most of the students said that they were deploying on Tomcat 6 or 7, or another servlet engine. One said that they were deploying on JBoss 6. None of my students said that they planned to use Glassfish 3.

6) Lack of richer builtin components. One of the things the students liked was that they could shop around for rich third-party components from IceFaces, RichFaces, Tomahawk, and so on. However, several said that they thought more rich components should have been built in. In particular, the lack of any components or libraries that linked to databases was mentioned several times.

7) There was a lot of confusion about why they got ViewExpiredExceptions when they were not using any session-scoped data. This was during development where they would just let a page sit around for a long time and come back to it later. I didn't know a simple way to prevent this (I know about using error-page in web.xml or exception-handler-factory in faces-config.xml, but that is far too complicated for beginners).

8) Everyone loved facelets templating. Even those who had used Struts Tiles before thought it was great.

9) Everyone loved composite components. They thought this was one of the best features.

10) Most people loved the integrated Ajax support. However, some thought that it was too hard to add in Scriptaculous effects or jQuery-based highlighting if they wanted to customize how the updated DOM entries were displayed. I probably just need to understand better how to use onevent. I gave examples of using it to show "working" messages, but not for customizing the updated DOM entries.

11) People generally liked using annotations to declare managed beans. They were much more split about whether implicit navigation was a good idea, or if explicit navigation rules in faces-config were better. I am sure my personal biases leaked through, since I feel that for real projects, explicit navigation rules are better.

Reply viewing options

Yeah, I'm sure that's true. I was MOSTLY joking, but it sure would be
nice to see GlassFish on more corporate radars. I don't follow those
numbers too closely, but we've not achieved world domination yet, so
there's still work left to do. :)

On 9/15/10 6:48 PM, webtier@javadesktop.org wrote:
>> Hey, Marty. Thanks for the report. [...] I wish
>> more people were planning on migrating to GlassFish,
>> but I guess you can't have it all. :)
> Hey, Jason. One thing to bear in mind is that most of my courses were onsite courses at specific companies. So, even if they had 20 developers, they probably only had a single app server or servlet container in mind, and they probably had already chosen that before they made the decision to go with JSF 2.0. In fact, with at least one organization, they were undecided on the framework until I convinced them to go with JSF 2.0.
>
> So, I think my experience represents a pretty small sample, so I wouldn't draw [i]too[/i] strong of a conclusion about what app servers are catching on for deploying JSF 2.0 apps. That being said, the observation that none of them was going with Glassfish was still interesting.
>
> Cheers-
> - Marty
> -----
> http://www.coreservlets.com/JSF-Tutorial/jsf2/
> [Message sent by forum member 'martyhall']
>
> http://forums.java.net/jive/thread.jspa?messageID=482895
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: webtier-unsubscribe@glassfish.dev.java.net
> For additional commands, e-mail: webtier-help@glassfish.dev.java.net
>

> Yeah, I'm sure that's true. I was MOSTLY joking, but it sure would be
> nice to see GlassFish on more corporate radars. I don't follow those
> numbers too closely, but we've not achieved world domination yet, so
> there's still work left to do. :)

Hey, Marty. Thanks for the report. It's encouraging to see positive
response to what we've done in JSF 2. Reports like this help us see
where we missed the mark, so that 2.next can fix those issues. I wish
more people were planning on migrating to GlassFish, but I guess you
can't have it all. :)

On 9/15/10 3:58 PM, webtier@javadesktop.org wrote:
> I have given several JSF 2.0 training courses in the USA in the last several months, and I also gave a talk on JSF 2.0 at a large conference in Bangalore India. For the most part, the US short course students were from healthcare and aerospace companies, but I taught some public courses where there was a smattering of students from other fields. Almost all of them were already starting or about to start some real-life JSF 2.0 projects.
>
> So, I thought I would pass on general reactions and trends among my students and clients. The short courses in particular represent only a few companies, so trends there may not be representative. YMMV.
>
> 1) Overall: generally positive reactions. In general, the reactions were extremely positive. Some of the students had low opinions of JSF 1.x (either from direct use or from word-of-mouth), and came in with low expectations. Almost without exception, they went away pleased with JSF 2.0. Several commented that it was much better than they had expected.
>
> 2) Other frameworks. At the conference, there were a few zealots for other frameworks. After the talk, one person said "Oh, Wicket is 10 times better than JSF 2". And another said the same for ZK, and another for Tapestry. I have no doubt that there are many very good features of those other frameworks, but my response to their comments was this:
> http://www.indeed.com/jobtrends?q=struts%2C+jsf%2C+wicket%2C+tapestry%2C+zk
>
> 3) Struts 2 vs. JSF 2. To my surprise, I got a number of comments from Struts 1 users that thought they should move from Struts 1 to JSF 2, rather than to Struts 2. I probably have much too small of a sample size to know if this is a general trend.
>
> 4) Wanted Eclipse support. These courses were taught with Eclipse 3.5, and several students complained about the lack of support in Eclipse for the facelets tags and for the faces-config.xml file. It was also a pain in the neck to manually copy in the JAR files (jsf-api.jar, jsf-impl.jar, jstl-api.jar, jstl-impl.jar) and the web.xml entries for each new Dynamic Web Project. (And, copying/renaming Dynamic Web projects in Eclipse is buggy because references to the old project name are left in the new project.) I'll make a followup posting soon about Eclipe 3.6 (Helios) support for JSF 2.
>
> 5) Most were deploying on a servlet engine. Most of the students said that they were deploying on Tomcat 6 or 7, or another servlet engine. One said that they were deploying on JBoss 6. None of my students said that they planned to use Glassfish 3.
>
> 6) Lack of richer builtin components. One of the things the students liked was that they could shop around for rich third-party components from IceFaces, RichFaces, Tomahawk, and so on. However, several said that they thought more rich components should have been built in. In particular, the lack of any components or libraries that linked to databases was mentioned several times.
>
> 7) There was a lot of confusion about why they got ViewExpiredExceptions when they were not using any session-scoped data. This was during development where they would just let a page sit around for a long time and come back to it later. I didn't know a simple way to prevent this (I know about using error-page in web.xml or exception-handler-factory in faces-config.xml, but that is far too complicated for beginners).
>
> 8) Everyone loved facelets templating. Even those who had used Struts Tiles before thought it was great.
>
> 9) Everyone loved composite components. They thought this was one of the best features.
>
> 10) Most people loved the integrated Ajax support. However, some thought that it was too hard to add in Scriptaculous effects or jQuery-based highlighting if they wanted to customize how the updated DOM entries were displayed. I probably just need to understand better how to use onevent. I gave examples of using it to show "working" messages, but not for customizing the updated DOM entries.
>
> 11) People generally liked using annotations to declare managed beans. They were much more split about whether implicit navigation was a good idea, or if explicit navigation rules in faces-config were better. I am sure my personal biases leaked through, since I feel that for real projects, explicit navigation rules are better.
>
> Cheers-
> - Marty
>
> -----
> http://courses.coreservlets.com/public-courses/jsf2/
> [Message sent by forum member 'martyhall']
>
> http://forums.java.net/jive/thread.jspa?messageID=482883
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: webtier-unsubscribe@glassfish.dev.java.net
> For additional commands, e-mail: webtier-help@glassfish.dev.java.net
>

> Hey, Marty. Thanks for the report. [...] I wish
> more people were planning on migrating to GlassFish,
> but I guess you can't have it all. :)

Hey, Jason. One thing to bear in mind is that most of my courses were onsite courses at specific companies. So, even if they had 20 developers, they probably only had a single app server or servlet container in mind, and they probably had already chosen that before they made the decision to go with JSF 2.0. In fact, with at least one organization, they were undecided on the framework until I convinced them to go with JSF 2.0.

So, I think my experience represents a pretty small sample, so I wouldn't draw [i]too[/i] strong of a conclusion about what app servers are catching on for deploying JSF 2.0 apps. That being said, the observation that none of them was going with Glassfish was still interesting.

On 9/15/10 4:48 PM, webtier@javadesktop.org wrote:
>> Hey, Marty. Thanks for the report. [...] I wish
>> more people were planning on migrating to GlassFish,
>> but I guess you can't have it all. :)
>
> Hey, Jason. One thing to bear in mind is that most of my courses were onsite courses at specific companies. So, even if they had 20 developers, they probably only had a single app server or servlet container in mind, and they probably had already chosen that before they made the decision to go with JSF 2.0. In fact, with at least one organization, they were undecided on the framework until I convinced them to go with JSF 2.0.
>
> So, I think my experience represents a pretty small sample, so I wouldn't draw [i]too[/i] strong of a conclusion about what app servers are catching on for deploying JSF 2.0 apps. That being said, the observation that none of them was going with Glassfish was still interesting.
>
> Cheers-
> - Marty
> -----
> http://www.coreservlets.com/JSF-Tutorial/jsf2/
> [Message sent by forum member 'martyhall']
>
> http://forums.java.net/jive/thread.jspa?messageID=482895
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: webtier-unsubscribe@glassfish.dev.java.net
> For additional commands, e-mail: webtier-help@glassfish.dev.java.net
>

Whoa: Eduardo. I haven't talked to you since you were the JSP spec lead. I remember once many years ago when Sun asked me to do the quarterly online chat that they would post on the servlet home page, and I was all nervous because I noticed your name in the audience. Fortunately, you didn't ask me any questions. And, I was a devoted XEmacs user back in my Lisp-hacking days. A real pleasure to hear from you.

Anyhow, you make a very good point: I think it is likely that lack of exposure is one of the main reasons that the clients I dealt with hadn't considered Glassfish 3. The clients in my recent courses were mostly all large companies that had well-established Java EE projects, so were probably pretty well entrenched with the app servers that were familiar to them.

Nevertheless, I personally think it will be harder for Glassfish to make inroads than it will for JSF 2.0 to do so. We shall see.