JSF 2.3 – neue Injections für FacesContext usw.


In meinem Post

https://www.schoenberg-solutions.de/roller/arndtsBlog/entry/jsf-converter-mit-ejb-injection

hatte ich schon einiges zu den „neuen“ Möglichkeiten in JSF Konvertern geschrieben. Mit JSF 2.3 wurde aber auch die Möglichkeit geschaffen, Objekte von JSF wie den FacesContext zu injizieren. Um diese Feature nutzen zu können muss – wie bei den Konvertern – eine Bean existieren, die die Annotation

 
@FacesConfig(version = Version.JSF_2_3)

enthält. Mit dieser Voraussetzung alleine funktioniert das Injizieren jedoch nicht. Besagte Bean muss ebenfalls die Annotation

 
@ApplicationScoped

enthalten, um im Application Scope zu liegen. Andernfalls funktionieren die neuen Möglichkeiten nicht. Es ergibt sich also beispielsweise folgende Bean zur Konfiguration der neuen Features

 
package de.schoeso.jsf;

import javax.faces.annotation.FacesConfig;
import javax.faces.annotation.FacesConfig.Version;

// Aktiviert CDI build-in Beans
@FacesConfig(version = Version.JSF_2_3)
// Erlaubt Injection
@ApplicationScoped
public class ConfigBean {

    /** Konstruktor */
    public ConfigBean() {
    }

}

Vergleicht auch

https://github.com/javaserverfaces/mojarra#activating-cdi-in-jsf-23

Du hast Fragen oder Anmerkungen? Kontakt: arndt@schoenb.de