Home > JSF > JSF 2.0: come (non) dichiarare la FacesServlet nel file web.xml

JSF 2.0: come (non) dichiarare la FacesServlet nel file web.xml

Con JSF 2 (e quindi JavaEE 6) la dichiarazione della FacesServlet, ed il relativo url mapping delle pagine JSF, puo’ essere omessa, perche’, al verificarsi di determinate condizioni, sara’ il container stesso ad istanziarla e configurarla automaticamente.

Questo si verifica, per esempio, nel momento in cui il container trova il file faces-config.xml nelle opportune directory del pacchetto applicativo.

Nel mio caso particolare, ho potuto eliminare le seguenti linee di configurazione dal web.xml del war:

<servlet>
<servlet-name>Faces Servlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.jsf</url-pattern>
</servlet-mapping>

E’ stato possibile perche’, avendo realizzato un’applicazione JSF modulare, ovvero composta da un war ed un jar contenente dei managed bean generici, sono stato costretto ad inserire nella directory META-INF del jar il file faces-config.xml: e’ infatti la sua presenza che dice al container di analizzare il jar alla ricerca di managed bean JSF realizzati con l’annotation @ManagedBean.

E l’involontaria conseguenza di quest’operazione e’ stata la possibilita’ di eliminare la dichiarazione della FacesServlet dal web.xml.

Le varie condizioni che permettono questo sono descritte nella JavaDoc della FacesServlet.

Categorie:JSF Tag:,
  1. Non c'è ancora nessun commento.
  1. No trackbacks yet.

Lascia un commento

Effettua il login con uno di questi metodi per inviare il tuo commento:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...

%d blogger cliccano Mi Piace per questo: