In quale base viene creato e memorizzato l'ID?
L'ID vista è il percorso relativo al contesto del file di visualizzazione. Per esempio. /foo.jsp
o /foo.xhtml
. L'implementazione ViewHandler
è responsabile della sua creazione e della sua memorizzazione in UIViewRoot
.
Viene creato in base alle JSP dichiarate su faces-config.xml?
Questi non devono necessariamente essere dichiarati ovunque in faces-config.xml
. Per ogni ingresso richiesta , è estratta dalla richiesta URI dal HttpServletRequest
oggetto sottostante dai suoi getPathInfo()
o getServletPath()
metodi, a seconda che la stessa FacesServlet
è mappata con pattern prefisso (/faces/*
) o pattern suffisso (*.jsf
) rispettivamente.
Quando JSF deve accedere a una nuova vista secondo una <navigation-case>
in faces-config.xml
, allora la nuova visualizzazione ID viene semplicemente estratto da essa ed una nuova UIViewRoot
viene creato il termine della fase azione invoke. In caso contrario, JSF torna alla stessa vista della richiesta originata.
Fondamentalmente è stato creato per ciascun ID vista JSP?
Sì, ogni vista ha il proprio identificativo univoco, che è fondamentalmente solo la sua posizione nel contesto dell'applicazione web.
Come vengono passati gli ID di visualizzazione per il rendering della risposta? È passato nel parametro di richiesta?
Sono memorizzati in UIViewRoot
che è a sua volta appena disponibile da FacesContext#getViewRoot()
. L'implementazione ViewHandler
chiama solo getViewId()
durante il metodo renderView()
.