Welcome to the OmniFaces Showcase application!

Live examples of the OmniFaces components and utilities can be tried out here. Please check out the left side menu.

What is OmniFaces?

Tired of reinventing JSFUtils or FacesUtils utility classes for every JSF web application and/or homebrewing custom components, taghandlers, etc to workaround or enhance some general shortcomings in JSF? OmniFaces may be what you're looking for!

OmniFaces is an utility library for JSF 2 that focusses on utilities that ease everyday tasks with the standard JSF API. OmniFaces is a response to frequently recurring problems encountered during ages of professional JSF development of the JDevelopment team and from questions being asked on Stack Overflow.

An important design goal will be to have as few dependencies as possible and to be minimally invasive. So far, it only requires JSF 2.0, EL 2.1 and Servlet 2.5 APIs (Java EE 6 details) which is already minimally available in a fairly modern container serving a JSF 2 web application. As such, OmniFaces should principally integrate perfectly well with most other JSF component libraries. Even more, this showcase application uses PrimeFaces 4.0 which works perfectly fine together with OmniFaces. Note that OmniFaces is not designed for portlets.

Contrary to some of the other excellent JSF 2 libraries out there (like PrimeFaces, or RichFaces), OmniFaces does not contain much if any of the beautiful visually oriented components that those other libraries are already known and loved for. As such, OmniFaces does not and probably will never contain things like rich table or datagrid components. OmniFaces is more geared toward "utilities" that solve everyday practical problems and workarounds for small shortcomings in the JSF API. Such utilities and workarounds can be based on components, but OmniFaces does not necessarily strive to be a "component library" perse.

Besides utility classes for working with the JSF API from Java code, such as Faces and Messages, and utility and enhanced components, such as <o:highlight> and <o:viewParam>, OmniFaces will include various general converters, validators and Facelets tag handlers. These will range from 'all-or-none' validators to converters which automatically convert Java models for usage in f:selectItem(s). There are also specialized handlers, such as a full ajax exception handler which will automatically handle all ajax exceptions with the default web.xml error-page mechanisms and a combined resource handler which will automatically combine all separate CSS/JS resources into a single resource.

OmniFaces is fully open source, and additionally this showcase application itself is also fully open source. The showcase application project homepage is available at code.google.com/p/omnifaces-showcase. Full source code for all demos is available at code.google.com/p/omnifaces-showcase/source/browse.

Installation

It is a matter of dropping the JAR file in /WEB-INF/lib.

Maven users can add OmniFaces by adding the following Maven coordinates to pom.xml:

<dependency>
    <groupId>org.omnifaces</groupId>
    <artifactId>omnifaces</artifactId>
    <version>1.7</version>
</dependency>
		

The OmniFaces UI components/taghandlers and EL functions are available under the following XML namespaces:

xmlns:o="http://omnifaces.org/ui"
xmlns:of="http://omnifaces.org/functions"
		

Documentation

Support

If you have specific programming problems or questions related to the OmniFaces library, feel free to post a question on Stack Overflow using at least the [jsf] and [omnifaces] tags.

If you have found bugs or have new ideas, feel free to open a new issue. Use "defect report" template to report a (possible) bug and use "feature request" template to request a new feature or enhancement.

For general feedback that's not either a question, bug report or feature request, please feel free to leave it at Devrates or Ohloh.