2011-01-06 6 views
20

Tengo una aplicación JSF2 simple usando Facelets. Mi web.xml se establece de la siguiente manera: -Cómo configurar JSF2 <welcome-file> con caras del mapeo de servlets?

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

Quiero configurar la aplicación por defecto en la página de bienvenida que es /pages/login.xhtml. Parece que no puedo obtener la configuración de archivo de bienvenida para recoger esto cuando vaya a la raíz de contexto en el navegador.

Mi configuración web.xml de bienvenida es el siguiente: -

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

¿Cómo fuerzo la bienvenida a la página Ir a la página de registro y asegurarse de que pasa por el servlet caras?

Si utilizo los siguientes se muestra la página, pero no ha pasado por el servlet caras y así rostros componentes no se representan: -

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

Cualquier ayuda apreciada!

Respuesta

22

Debe crear un archivo login.jsf vacío, junto a su archivo login.xhtml. Por alguna razón, este truco es necesario para engañar al contenedor de servlets y hacerle creer que existe su archivo de bienvenida.

Nota: La respuesta servida seguirá siendo la respuesta JSF utilizando su archivo login.xhtml, no el archivo vacío login.jsf que cree.

+3

Gracias por las ediciones BalusC - Respondí la pregunta que esperaba, ¡no la pregunta que estaba leyendo! –

+0

¡Eso funciona! Muchas gracias por la respuesta (¡y las ediciones!) – oidsman

+0

Gracias. Funciona genial. –

1

Información adicional a la solución original.

Esto es solo una necesidad de compatibilidad hacia atrás para los contenedores servlet anteriores a la versión 3. Una vez ejecutados bajo Glassfish 3.1 o Tomcat 7, por ejemplo, ya no es necesario tener un archivo vacío como este. Ejecuté pruebas para verificar el uso de Tomcat 6 y Tomcat 7. En el pasado había realizado pruebas con Glassfish y asumí que un problema de Tomcat 6 estaba en juego ya que ejecutamos nuestro software en Tomcat 6 en este momento y no es un contenedor de 3.0 servlets. He estado usando una página JSP con redirección, pero después de moverme completamente a facelets no me gustó que quedara una página JSP. Esta es una gran solución para el corto plazo hasta que estemos corriendo en un contenedor de 3.0 servlets. La verdadera razón por la que funciona es que todo se está haciendo con la entrada WEB.XML es una verificación de la existencia del archivo. El trabajo real se lleva a cabo en JSF, ya que capta la solicitud a la página de rostros, por lo que nunca golpea esa página vacía por nada.