December 2017
Intermediate to advanced
372 pages
8h 46m
English
The JSF specification predates CDI. As such, many JSF artifacts, such as FacesContext and ExternalContext, had to be obtained via static entry methods; this resulted in hard-to-read boilerplate code. JSF 2.3 introduces the ability to inject JSF artifacts via CDI's @Inject annotation, as seen in the following example:
package net.ensode.javaee8book.jsfarbitrarymess;
import java.io.Serializable;
import javax.faces.application.FacesMessage;
import javax.faces.context.FacesContext;
import javax.faces.view.ViewScoped;
import javax.inject.Inject;
import javax.inject.Named;
@Named
@ViewScoped
public class ArbitraryMessageController implements Serializable {
@Inject FacesContext facesContext; public void saveData() { FacesMessage ...