true - redirect jsf primefaces
No se puede encontrar el caso de navegaciĆ³n coincidente con from-view-id ''/pages/index.xhtml'' (1)
Tengo problemas para navegar entre mis páginas JSF. La mayor parte de mi navegación ocurre cuando haces clic en un botón de comando. La acción del botón de comando devuelve una cadena.
Mi página de inicio de sesión es mi página de bienvenida. Aquí está en mi web.xml:
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>/faces/*</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>faces/pages/index.xhtml</welcome-file>
</welcome-file-list>
En la barra de direcciones de mi navegador, la página aparece como:
http://localhost:8080/ui/faces/pages/index.xhtml
Una vez que ocurre la autenticación, la función devuelve esta cadena:
"/ui/faces/pages/home.xhtml"
El archivo al que quiero navegar se encuentra en:
pages/home.xhtml
Sin embargo, cuando se supone que la navegación ocurre, obtengo este error:
No se puede encontrar el caso de navegación coincidente con from-view-id ''/pages/index.xhtml'' para la acción ''# {indexPageController.login ()}'' con el resultado ''/ui/faces/pages/home.xhtml''
¿Alguien puede ayudarme a comprender la ruta relativa que necesito para navegar correctamente a la página?
No debe incluir la ruta de contexto /ui
ni las asignaciones /faces
FacesServlet
en el resultado del caso de navegación. Simplemente debe representar la ID de vista única, que es básicamente la ruta al archivo de vista física absoluta a la raíz de contenido web o relativa a la ID de vista actual.
Entonces, absoluto (comenzando con /
) a la raíz del contenido web:
/pages/home.xhtml
O relativo (no comenzando con /
) al ID de la vista actual (suponiendo que se encuentre en /pages/index.xhtml
):
home.xhtml
Tenga en cuenta que las anotaciones punto-barra ./
y doble-punto-barra ../
no son compatibles.
O incluso sin extensión de archivo; JSF implicará el sufijo predeterminado de Facelets, que por defecto es .xhtml
y se puede configurar mediante el parámetro de contexto javax.faces.DEFAULT_SUFFIX
:
/pages/home
home
Después de todo, también tiene sentido si te das cuenta de que la ruta de contexto /ui
y el mapeo /faces/*
FacesServlet
no son controlables desde dentro de la aplicación webapp. Si alguna vez cambian externamente, teóricamente tendrías que cambiar todos los resultados de casos de navegación en toda la base de código y reconstruir la aplicación web. Esto no tendría ningún sentido. JSF toma ya cuidado de ellos para usted.