Shameless self-promotion for my LGPL project :)
|Deletions are marked like this.||Additions are marked like this.|
|Line 21:||Line 21:|
|* Portlet Bridge||* Portlet Bridge (["PortletBridge"])|
JavaServer(tm) Faces (JSF) is a web application framework specification (JSR252, JSR127) based around the model-view-controller pattern.
The Apache MyFaces project provides both an implementation of the JSF specification ("MyFaces Core"), and a set of add-on libraries that work on any implementation of the specification (including, of course, Apache MyFaces Core).
JSF supports the development of highly interactive applications where the system interacting with the user is separated from the system that contains the presentation logic; web-browser/web-server is one example. JSF has a "component-based" architecture, and therefore is more like "Swing for the web" than an html publishing framework. People familiar with Swing, Gnome, KDE, MFC, VisualBasic, Delphi etc should feel right at home developing JSF applications.
JSF is quite similar to the [http://jakarta.apache.org/tapestry Tapestry framework] as that is also a component-based framework. JSF can also fill the same "niche" as the well-known [http://jakarta.apache.org/struts/ Struts framework], but has a rather different approach.
The [http://java.sun.com/j2ee/javaserverfaces/ Sun JavaServer Faces(tm) Page] has information about the [http://www.jcp.org/en/jsr/detail?id=252 JSF-1.2] (and older [http://www.jcp.org/en/jsr/detail?id=127 JSF-1.1]) specification. They also provide a useful Tutorial there. MyFaces Core is a 100% compliant implementation of these standards.
The Apache MyFaces family of projects includes the following libraries that can be used with any JSF implementation to add extra features and flexibility:
- Tomahawk (["Tomahawk"]),
- Tobago (["Tobago"]),
- Trinidad (["Trinidad"]),
- Orchestra (["Orchestra"]),
Portlet Bridge (["PortletBridge"])
You can find further information about the MyFaces subprojects on the official site at http://myfaces.apache.org.
See the MyFaces Tomahawk and Sandbox examples in action:
See a MyFaces real world use case at JavaWorld
If your company uses MyFaces, please add your company here: ["Companies Using MyFaces"].
["FAQ"] - Frequently asked questions about MyFaces or JSF, including a section on Facelets/Tomahawk/!MyFaces/Trinidad/JSF Troubleshooting
["Getting Started"] - Quick guide about MyFaces
- ["Installation and Configuration"] - Installation instructions for different servlet containers
["Using MyFaces in a Project built with Maven"] - General instruction on adding MyFaces in a Maven POM.
- ["Building With Maven"] - Maven build instructions
["MyFaces Archetypes for Maven"] - Setup a new JSF project in a minute, following the standards and including the exact dependencies!
- ["Library dependencies"] - Library dependencies and their versions
["How to add MyFaces support to a Sun JSF RI application"] - Add MyFaces support to a JSF RI application
CompatibilityMatrix - MyFaces core and component library compatibility guide
JSF and MyFaces in Theory: The Concepts
- ["JSF and MVC"] - JSF and the model-view-controller pattern
["How JSF State Management Works"] - Serialization, StateHolder, backing beans, component tree, t:saveState explained.
- ["How The Immediate Attribute Works"] - immediate, validation, model update explained.
- ["How Component Child Rendering Works"] - getRendersChildren, encodeChildren explained.
["StudyGuide"] - Tips/guide to getting familiar with the MyFaces implementation
- ["IDAssignment"] - Assignment of IDs to HTML elements.
JSF and MyFaces in Practice: The HowTo's
Working with tables
["ExecutingMethodsFromLinkButtonParameters"] - From List to Detail
- Access a detail record from a master list, or more generally, execute a managed bean method based on parameters provided for a link or button.
["ManagingDataScrollerPage"] - From Detail back to List : How to stay on the right table page.
["WorkingWithLargeTables"] - Use dataTable/dataScroller without having the entire dataset in memory
- ["Working with auto sortable tables"] - Enable automatic sort on your data table
["Exporting DataTable To MS-Excel"] - Out put a data table to excel
Tracing and Debugging
["TracingMyFacesUsingAspectJ"] - How to trace MyFaces using AspectJ
["FacesTrace"] - A visual debugger that can be integrated to the JSF pages
Working with TabbedPanes
["SettingTabClasses"] - Setting CSS Classes on Tabs.
Working with Radio Buttons
- ["Display Radio Buttons In Columns"] - Example of Displaying Radio Buttons in Columns.
- ["Radio Buttons and Browsers"] - Notes about radio buttons and browser specific behavior.
["SubmitPageOnValueChange"] - Make an input control submit a page when the value changes.
["ManagingCheckboxes"] - Tips for working with checkboxes in datatables.
Conversion and Validation
["NullCapableConverter"] - Make a converter to handle disabled or null-capable SelectItems.
- ["Create and Display Messages"] - Create Messages to be used by view with h:message h:messages.
["OptionalValidationFramework"] - allows you to change the behavior of validators in a form
- ["Entity Converters"] - a special kind of converter that can take the input value as id and the return the desired entity instance.
- ["Client_Side_Validation"] - Run conversions and validations at client side.
- ["Displaying Errors/Infos/Warnings in JSF Pages"] - A method for communicating messages to the user.
- ["Handling Server Errors"] - methods for handling server errors.
Navigation Handling - in and outside JSF
- ["Navigation Overview"] - Overview of the Navigation Tags
["Custom Navigation Handler"] - Enhance the MyFaces Navigation Handler to support parameter passing, dynamic navigation and redirection.
["InvokingJsfPagesWithStandardUrls"] - Creating standard HTML links (with parameters) that display JSF pages (using JSF in a RESTful environment)
["AccessingOneManagedBeanFromAnother"] - Accessing one managed bean from another
["ClearInputComponents"] - Clear/Reset all submitted values in input components on a page.
["AccessFacesContextFromServlet"] - How to access the Faces Context from a servlet.
- ["Execute action on page load"] - How to run JSF actions and run navigation rules when a page loads.
Configuration of special features
- ["Performance"] - Making JSF perform
- ["PerformanceTestingWithJMeter"] - Using JMeter to test your application's performance.
- ["Secure Your Application"] - Encrypt the view state.
["LoggingSettings"] - Useful classes to log on for troubleshooting.
- ["A Little Quality Assurance"] - How to validate your managed beans and navigation rules.
["Management of Webapp Resources With Weblets"] - How to use resources packaged in a jar in MyFaces apps using Facelets.
- ["Bandwidth"] - Compression
["SecurityContext"] - Security Extension
["RedirectTracker"] - Preserve messages and t:saveState across redirects
Properly use those extended components
["Setup For File Uploads"] - A quick and dirty checklist for setting up your MyFaces application for file uploads.
- ["Dynamic Menus with JSCookMenu"] - Create dynamic menus using the jsCookMenu component.
- ["WYSIWYG Editor"] - Integrate TinyMCE or DOJO WYSIWYG Editor into !Myfaces Application
JSF and MyFaces in Practice: Specialized Trails
Creating Custom Components
["ComponentPack"] - Create your own component pack
- ["Creating Composite Components"] - Create a composite or compound component out of existing components
- ["Programmatic"] - Programmatic creation and manipulating components in the runtime
["Using Portlets"] - Using MyFaces within Portlets
Migration from previous versions
- ["From 1.0.9m9 to 1.1.0"]
- ["From 1.1.0 to 1.1.1"]
- ["From 1.1.x to nightly"]
- ["From 1.1.1 to 1.1.3 with Jboss"]
- ["Upgrading to Tomahawk 1.1.3"]
- ["More tips on Upgrading to Tomahawk 1.1.3"]
- ["Tomahawk 1.1.4 to 1.1.5"]
- ["Sending_Files"] - How to set up a action which will download a file.
- ["Parameters_In_EL_Functions"] - How to pass parameters in an EL expression function.
JSF and MyFaces: The Reference
["JsfComponents"] - List of JSF components and how to use them
["Tomahawk"] - List of custom MyFaces Tomahawk components and extensions, and how to use them.
Frameworks related to JSF and MyFaces
["Tiles and JSF"] - Use Tiles with MyFaces
["JSF With Spring"] - Use the Spring Framework with MyFaces.
[http://notdennisbyrne.blogspot.com/2007/09/integrating-guice-and-jsf.html JSF and Google Guice] Integrating Guice and JSF
["MigrateFromJspToFacelets"] - Step by step instructions to migrate to Facelets.
- ["Facelets with Trinidad"] - To use trinidad components with facelets, you must also create a facelets configuration file.
- ["Use Facelets with Tomahawk"] - To use tomahawk components with facelets, you must also create a tomahawk.taglib.xml facelets configuration file.
- ["Facelets Support within IDEs"] - Using Facelets from within various Integrated Development Environments
- ["SEAM Integration"] - Integrate Jboss Seam into your application.
- ["Integrating Ajaxanywhere"] - See how easy is to "ajaxize" your application.
["Myfaces Eclipse Setup"] - Configure eclipse to launch MyFaces applications using tomcat/jetty.
- ["JSF and Acegi"] - Using Java Server Faces with Acegi Security
["FacesFreeway"] - An effort to minimize the work for simple input forms
[http://www.metawidget.org Metawidget] - Another effort to minimize the work for input forms
- ["jsf-comp"] Sourceforge project - Shared community code sandbox.
MyFaces Development and Project Management
["MyFaces Developer Notes"] - MyFaces developers guidelines
["Contributing Patches"] - How to attach code changes and other files to the MyFaces issue tracker
["EditXdocs"] - Editing Myfaces xdocs files in the MLMind XML editor
["JSR-252"] - Info you will need if you are working on the MyFaces JSF 1.2 project
["Obsolete/older MyFaces Development pages"] - Building older versions of MyFaces
["Building MyFaces in your IDE"] - Building, Debugging and Deploying MyFaces in your IDE
["Automated Testing"] - Automated testing of MyFaces
["Source Code Packaging"] - How MyFaces source code is divided into modules and java packages.
- ["Shared - impl or tomahawk"] - Which shared_XXX namespace should I use?
ComponentsCommons - Whiteboard to discuss creation of a 'myfaces-components-commons' jar.
MyFaces Project Management
- ["promotion"] - Requirements for promotion of a sandbox component
- ["Release Plans"] - Plans and notes on individual releases
- ["Release Procedure"] - @deprecated (Specific instructions for SVN and Maven tasks related to releases)
["MyFaces Artifacts"] - List of Build Artifacts and their Contents
- ["New_Committers"] - Additional info for new committers
["MyFaces Commons Refactoring"] - Checklist for Upcoming Refactoring of MyFaces commons classes
- ["Source Code Repository Structure"] - Trunks and Branches
- ["Name Finding"] - Monitor requests to find names for components/projects/etc
MyFaces Project Infrastructure
- ["Apache Server"] - Project Infrastructure, Setup of Apache2 on Solaris Zone
- ["Continuum Build"] - Care and feeding of the Continuum build processes on the Zone
Community and Context
Talk, talk, talk
- Channel #myfaces on irc.freenode.net - chat discussion of myfaces issues.
Channel ##jsf on irc.freenode.net - chat discussion of jsf issues. Log can be found on [http://uwyn.com/drone/log/bevinbot/%23jsf]
With a little help of our friends
["How to Help"] - Hints how you can get involved, help to support and contribute to Apache MyFaces
- ["Help Wanted"] - Want to contribute? Volunteers needed for this list of tasks.
["Acknowledgements"] - The most important page of this WIKI: saying "Thanks" to people who helped making MyFaces a success!
["Spotlight"] - Articles about MyFaces
- ["What Tools Do You Use to Develop Web Applications Using JSF"] - Experiences from fellow developers
["Powered by MyFaces"] - Projects developed using MyFaces components
["Companies Using MyFaces"] - List of companies and institutions using MyFaces in their day to day work
["3rd Party Contributions"] - 3rd party tools and APIs that work with MyFaces
On the web
["UsefulLinks"] - Tutorials for JavaServer Faces, MyFaces project activity and other useful links