Matt RaibleMatt Raible is a Web Architecture Consultant specializing in open source frameworks.

10+ YEARS


Over 10 years ago, I wrote my first blog post. Since then, I've authored books, had kids, traveled the world, found Trish and blogged about it all.

Thoughts on MyFaces 1.2 vs. JSF RI

Yesterday, MyFaces 1.2 was released. I took the opportunity to upgrade AppFuse Light and found it surprisingly easy to do so. The only issue I ran into is my testing logic no longer works. I haven't had a chance to dive deeper into trying to fix the problem, but I did check the code in.

Since I'm using Facelets with MyFaces, I figured it should be possible to run my app on Tomcat 5.x. No dice. I tried replacing MyFaces with Sun's RI (version 1.2_04) and voila! - it works.

From what I learned yesterday, it appears that MyFaces 1.2 will only run on a container that supports JSP 2.1. Sun's RI, on the other hand, will run on a Servlet 2.4/JSP 2.0 container. I don't know if Sun's RI is doing things properly, but it doesn't seem like Servlet 2.5 is required (which is kinda nice IMO).

You might ask why I care about JSP 2.0 vs. JSP 2.1? In reality, I don't. However, if I were to mix and match Struts 2 and JSF in the same application (using the Struts 2 JSF Plugin), I'd like to do it on a JSP 2.0 container. Why? Because OGNL (the EL in Struts 2) uses the pound sign (#) for expressions and JSP 2.1 hijacked that. Until the Struts team fixes that, I'm stuck on JSP 2.0. The workaround (disabling EL for all JSPs) doesn't seem like a good option to me.

Posted in Java at Jul 19 2007, 11:32:18 AM MDT 7 Comments
Comments:

There are specific hooks for accomodating EL creation and registration in the RI, which were spurred on by the Facelets camp, but I'm assuming have been well utilized by the vendor community and their containers also. I've complained too about some of the default logic they setup for JSP 2.1 and why it still doesn't handle inline content properly for JSF even-- it went something like, "Ummm... we're not sure how to make everyone happy with pound syntax, so we're just going to make everyone unhappy." :-)

Posted by Jacob Hookom on July 19, 2007 at 11:51 AM MDT #

I believe from the spec point of view, what the RI is doing is allowed. If you're using JSP for your views, then yes, you need to use JSP 2.1. If you're using Facelets, then those requirements are no longer relevant.

Posted by RL on July 19, 2007 at 12:50 PM MDT #

JSP is dead to me. Jacob, are you listening? Put some fire under that Facelets-like spec in JSF 2.0. I don't ever want to have to look back. Too many horrible memories...and they still don't get it.

Posted by Dan Allen on July 19, 2007 at 05:57 PM MDT #

+1 JSP is dead to me. I hope Facelets becomes part of JSF 2.0 as well.

Posted by Rick Hightower on July 20, 2007 at 01:23 PM MDT #

+0.5 I am trying to kill JSP in my applications :-p Same wishes as Rick.

Posted by Ashkan on July 21, 2007 at 06:10 AM MDT #

I switched from MyFaces to Sun JSF RI because the implementation of the server side state saving method was broken in My Faces 1.4 . I am using Seam 1.2.1 , Facelets and have a publicly hosted site . Using Ajax and client side state saving was making my application very slow and hence moved to Sun JSF RI I need to explore the Server side state saving in MyFaces 2.0 --Hari

Posted by Hari on August 01, 2007 at 01:48 AM MDT #

I am interested in struts2-jsf plugin. but I want to know that is it possible to run a struts2.3+jsfplugin+myfaces2.1.6 project on tomcat7.0 ? just a try, thank you.

Posted by qiangbro on March 22, 2012 at 09:09 AM MDT #

Post a Comment:
  • HTML Syntax: Allowed