Domanda

Ho una semplice applicazione JSF2 utilizzando Facelets. Il mio web.xml è impostato come segue: -

<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.jsf</url-pattern>
</servlet-mapping> 

Voglio impostare l'applicazione di default per la pagina di benvenuto che è /pages/login.xhtml. Io non riesco a ottenere l'impostazione di benvenuto-file per prendere questo quando si va alla radice contesto nel browser.

Il mio web.xml impostazione di benvenuto è la seguente: -

<welcome-file-list>
<welcome-file>/pages/login.jsf</welcome-file>
</welcome-file-list>

Come faccio a forzare l'accoglienza pagine goto la pagina di login e assicurarsi che passa attraverso le facce servlet?

Se uso i seguenti viene visualizzata la pagina, ma non è andato attraverso i volti servlet e così visi componenti non sono resi: -

<welcome-file-list>
<welcome-file>pages/login.xhtml</welcome-file>
</welcome-file-list>

Qualsiasi aiuto apprezzato!

È stato utile?

Soluzione

È necessario creare un file login.jsf vuoto, accanto al file login.xhtml. Per qualche motivo è necessario questo hack per ingannare il servlet container a pensare esiste il file di benvenuto.

. Nota: La risposta servito sarà ancora la risposta utilizzando il file JSF login.xhtml, non il file login.jsf vuota si crea

Altri suggerimenti

Per ulteriori informazioni a soluzione originale.

Questa è solo un'esigenza compatibilità all'indietro per contenitori servlet prima versione 3. Una volta in esecuzione sotto Glassfish o Tomcat 3.1 7, per esempio, non è più necessario avere un file vuoto come questo. Ho eseguito test per verificare utilizzando Tomcat 6 e Tomcat 7. In passato ho avuto le prove imbattuto con Glassfish e assunse un problema di Tomcat 6 era in gioco in quanto si corre il nostro software in Tomcat 6, al momento attuale e non è 3.0 servlet container. Avevo usato una pagina JSP con redirect, ma dopo essersi trasferito completamente al facelets mi piaceva avere uno rimasto pagina JSP. Questa è una grande soluzione per il breve termine fino a quando ci sono in esecuzione in un contenitore di servlet 3.0. Il vero motivo per cui funziona è che tutto è stato fatto con l'entrata web.xml è un controllo sul file esistenza. Il vero lavoro viene gestito fuori per JSF come cattura la richiesta alla pagina facce così non colpisce che la pagina vuota per nulla.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top