What is JoinFaces?
This project enables JSF usage inside Spring Boot Application.
It autoconfigures PrimeFaces, PrimeFaces Extensions, AdminFaces, BootsFaces, ButterFaces, IceFaces, RichFaces, AngularFaces, OmniFaces, Mojarra and MyFaces libraries to run at embedded Tomcat, Jetty or Undertow servlet containers. It autoconfigures Weld and Rewrite too.
It also aims to solve JSF and Spring Boot integration features. Current version includes JSF and CDI annotations support and Spring Security JSF Facelet Tag support.
How to use
JoinFaces Example shows JoinFaces Starter usage. It may help you to choose the JoinFaces Starter that fits your needs.
You can find more examples here.
Key Features
Many JoinFaces Starters available
There are many JSF Spring Boot Starters available.
See detailed starters here.
JSF properties configuration via application.properties or application.yml
Library | Namespace | Example |
---|---|---|
standard (javax.faces) | jsf | jsf.PROJECT_STAGE: Development |
primefaces | jsf.primefaces | jsf.primefaces.theme: overcast |
bootsfaces | jsf.bootsfaces | jsf.bootsfaces.USETHEME: true |
butterfaces | jsf.butterfaces | jsf.butterfaces.provideJQuery: true |
adminfaces | jsf.adminfaces | jsf.adminfaces.skin: skin-blue |
icefaces | jsf.icefaces | jsf.icefaces.compressDOM: true |
richfaces | jsf.richfaces | jsf.richfaces.resourceDefaultTTL: 68400 | angularfaces | jsf.angularfaces | jsf.angularfaces.addLabels: true |
omnifaces | jsf.omnifaces | jsf.omnifaces.FACES_VIEWS_ENABLED: true |
mojarra | jsf.mojarra | jsf.mojarra.preferXHTML: true |
myfaces | jsf.myfaces | jsf.myfaces.PRETTY_HTML: true |
jetty | jsf.jetty | jsf.jetty.classPathResource: META-INF/resources |
undertow | jsf.undertow | jsf.undertow.classPathResource: META-INF/resources |
Look full application.yml example.
Additional information in #22
JSF and CDI annotations support automatically
Annotation |
---|
@NoneScoped |
@RequestScoped |
@ViewScoped |
@SessionScoped |
@ApplicationScoped |
Spring Security JSF Facelet Tag support
Namespace: http://www.springframework.org/security/tags
Tag | Description |
---|---|
authorize | perform Spring Security authorization decisions, using attributes: ifAnyGranted, ifAllGranted, ifNotGranted, access, url, method, var. |
anonymous | verify if the user is anonymous. |
authenticated | verify if the user is not anonymous. |
fullyAuthenticated | verify if the is not an anonymous or a remember-me user. |
Function | Description |
---|---|
areAllGranted | returns true if the user has all of of the given authorities. |
areAnyGranted | returns true if the user has any of the given authorities. |
areNotGranted | returns true if the user does not have any of the given authorities. |
isAllowed | returns true if the user is allowed to access the given URL and HTTP method combination. |
isAnonymous | returns true if user is anonymous. |
isAuthenticated | returns true if the user is not anonymous. |
isFullyAuthenticated | returns true if the is not an anonymous or a remember-me user. |
Additional information in #29
System Requirements
By default, JSF Spring Boot Starter requires Java 8 and Spring Boot 2.x and JSF 2.x.
Getting Help
- Take a look at github.com/joinfaces/joinfaces/wiki.
- Report questions and bugs at github.com/joinfaces/joinfaces/issues.
Contributing
- Report documentation, features, enhancement and bugs at github.com/joinfaces/joinfaces/issues.
- Pull requests are welcome.
Structure
This software is multi module Maven project and follows Spring Boot Reference to create JSF Auto Configuration. See what's inside each submodule.