jsf-2 java-ee-6

jsf 2 - ¿Cómo configurar JSF2<welcome-file> con la asignación de servlet de caras?



jsf-2 java-ee-6 (2)

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

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

Tengo una aplicación JSF2 simple usando Facelets. Mi web.xml se establece de la siguiente manera: -

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

Quiero configurar la aplicación como predeterminada para 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 voy a la raíz de contexto en el navegador.

La configuración de bienvenida de mi web.xml es la siguiente:

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

¿Cómo fuerzo a la página de bienvenida para ir a la página de inicio de sesión y asegurarme de que pase por el servlet de caras?

Si utilizo lo siguiente, la página muestra pero no ha pasado por el servlet de caras y, por lo tanto, los componentes de las caras no se procesan:

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

Cualquier ayuda apreciada!


Información adicional a la solución original.

Esto es solo una necesidad de compatibilidad con versiones anteriores de los contenedores de servlets anteriores a la versión 3. Una vez que se ejecuta en Glassfish 3.1 o Tomcat 7, por ejemplo, ya no es necesario tener un archivo vacío como este. Realicé pruebas para verificar el uso de Tomcat 6 y Tomcat 7. En el pasado, realicé pruebas con Glassfish y asumí que estaba en juego un problema de Tomcat 6 ya que ejecutamos nuestro software en Tomcat 6 en el momento actual y no es un contenedor de 3.0 servlets. Había estado usando una página JSP con redireccionamiento, pero después de moverme completamente a facetas, no me gustaba tener una página JSP restante. Esta es una gran solución para el corto plazo hasta que estemos ejecutando en un contenedor de servlet 3.0. La razón real por la que funciona es que todo se está haciendo con la entrada WEB.XML para verificar la existencia del archivo. El trabajo real se realiza en JSF, ya que captura la solicitud a la página de caras, por lo que nunca llega a esa página vacía para nada.