Specification
The JSR Specification
JSF is unlike other web frameworks because it’s not a library, but rather a specification for a library. It’s developed in the Java Community Process (JCP) and included in the Java EE platform of specifications. Currently, it’s being worked on as Java Specification Request (JSR) 314, though the foundation was laid for JSF in JSR-127 and later improved on in JSR-252.
So where’s the code? Well, the nice part about a specification is that anyone can produce an implementation of it and call it “JavaServer Faces”. Actually, to be more precise, the implementation must follow the specification and pass the JSR-314 Technology Compatibility Kit (TCK). But that is for the implementer to worry about. You just look for projects that are JSF implementations.
Every Java EE specification must have at least one reference implementation. For JSF, that’s Mojarra. Apache also has an implementation of JSF called MyFaces. You can use either implementation and expect the same consistent behavior as defined by the specification. The specification can’t dictate how well an implementation performs, though. That’s for you to judge!
Java and JavaServer Faces are trademarks or registered trademarks of Oracle and/or its affiliates. http://www.javaserverfaces.org is maintained and operated by members of the JSR-314 (JSF 2.0) Expert Group and dedicated community contributors. Got a suggestion to make javaserverfaces.org better? Is there a page we forgot? Please post your suggestion in the community forums.