¿En qué base se crea y almacena la identificación?
La ID de vista es la ruta relativa al contexto del archivo de vista. P.ej. /foo.jsp
o /foo.xhtml
. La implementación ViewHandler
es responsable de crearlo y almacenarlo en UIViewRoot
.
¿Se ha creado en base a los JSP declarados en faces-config.xml?
No es necesario que se declaren en ningún lugar en faces-config.xml
. Por cada entrante solicitud, se extrae de la petición URI por el HttpServletRequest
objeto subyacente por sus getPathInfo()
o getServletPath()
métodos, dependiendo de si el FacesServlet
sí se mapea con el patrón de prefijo (/faces/*
) o patrón sufijo (*.jsf
) respectivamente.
Cuando JSF necesita para navegar a una nueva vista como por un <navigation-case>
en faces-config.xml
, a continuación, la nueva vista ID, se extrae de ella y un nuevo UIViewRoot
es creado por final de la fase de acción de invocación. De lo contrario, JSF vuelve a la misma vista que se originó la solicitud.
¿Básicamente se ha creado para cada ID de vista única de JSP?
Sí, cada vista tiene su propio identificador único, que es básicamente su ubicación en el contexto de la aplicación web.
¿Cómo se ven las identificaciones para procesar la respuesta? ¿Se pasa en el parámetro de solicitud?
Se almacenan en UIViewRoot
que a su vez solo está disponible por FacesContext#getViewRoot()
. La implementación ViewHandler
solo llama a getViewId()
durante el método renderView()
.