You may have heard that approximately 50% of the time devoted to application development is consumed by user interface (UI). In addition, there exist significant dependencies to the backend part of the application and many cross-cutting concerns. It is a common practice to restate and extend backend information in presentation and mix concerns together. This results with strong coupling and hard maintenance. This all ends up with error-prone and tedious work related to UI development and maintenance.

Can reduce these efforts devoted to UI development? Can we reduce the overall time and budget. Well, if we can reduce the maintenance efforts we can get even more!

We present a new approach for UI development that reduces development efforts to minimum. Each concern is an individual (layout, security, validation, widget, etc.), and backend information are machine inspected. This way you only define your presentation once and it is distributed to UI as you aimed, furthermore it always adapt to your latest backend without any efforts!


To generate editable or read-only form for given class just write following line:

<af:ui instance="#{bean.entity}" edit="true" />

Besides that you need to define standard configuration as is described in documentation. For that and further information look at wiki.


  • core: Core of AspectFaces framework, implements inspection and aspect weaving
  • annotation-descriptors: JPA and Hibernate annotations inspectors
  • javaee-connector: Injection into J2EE process, defines AspectFacesListener
  • javaee-jsf2: Meta-artefact defining all dependencies required for usage with JSF 2.1
  • ondemand-jsf2: Runtime weaving of aspects, it's an opposite to static integration running outside the container without current context

External Resources


AspectFaces Maven repository is located on and can be included into your pom.xml files.

    <name>CodingCrayons Maven Repository</name>

To include AspectFaces into your JSF project you have to include the following dependency. If you do not need JSF integration, you can include just subset of this meta-dependency.



Framework is published under LGPL v3.