Learn about the main object models used in the navigational state SPI.
Etat de navigation
Le modèle d'objet d'état de navigation est une hiérarchie d'informations d'état représentée sous la forme d'un document de type DOM qui contient des informations d'état sans type représentées sous la forme de chaînes car une page classique contient de nombreuses URL nécessitant la sérialisation répétée de l'état de navigation pour chaque demande. La mémoire basée sur les chaînes permet la sérialisation efficace des états de navigation dans les URL, car elle évite aux objets gourmands en mémoire et en temps de traitement de chaîner des conversions pendant la sérialisation.
L'état de navigation est représenté par le biais des interfaces suivantes :
- com.ibm.portal.state.StateHolder
- com.ibm.portal.state.StateHolderController
- com.ibm.portal.state.dom.DocumentModel
- com.ibm.portal.state.dom.DocumentController
L'interface StateHolder permet d'accéder en lecture aux informations de l'état de navigation en exposant une méthode getModel() qui renvoie une interface au modèle de document sans type, à savoir l'interface DocumentModel. L'interface DocumentModel fournit un ensemble de méthodes permettant d'inspecter la structure hiérarchique du document d'état ainsi que des nœuds uniques faisant partie du document.
De plus, l'interface StateHolder propose une méthode newState() qui permet de créer un clone de cette instance de StateHolder donnée. Cette méthode est importante car, généralement, l'état de navigation doit être cloné avant de le modifier en fonction de la sémantique spécifique de l'URL générée. Si, par exemple, le programmeur souhaite créer une URL qui pointe vers une page de portail spécifique, les informations de sélection de page dans le modèle de document d'état doivent être modifiées. Cette modification ne doit toutefois pas être appliquée à toutes les URL d'une page.
En plus de cela, l'interface StateHolderController permet de modifier les informations d'état grâce à une méthode getController() qui offre une interface de contrôleur au document d'état sans type nommé DocumentController. L'interface DocumentController offre un moyen de modifier la structure hiérarchique du document d'état, avec notamment la création de nœuds de document, leur insertion dans la hiérarchie des nœuds et la suppression de nœuds.
URL des moteurs
Les URL sont représentées à l'aide de l'interface com.ibm.portal.state.EngineURL. EngineURL représente une URL qui contient un état de navigation. Le StateHolder initial auquel un EngineURL fait référence est indiqué lors de la requête d'une nouvelle instance EngineURL à partir de la fabrique d'URL appropriée. Pour plus de détails, voir Services de génération d'URL pour en savoir plus. Il s'agit généralement d'une copie de l'état de base propre à la requête.
L'interface
EngineURL fournit les méthodes suivantes :
- StateHolderController getState()
- Renvoie une interface accessible en lecture et en écriture à l'état de navigation porté par l'URL.
- void setProtected(Boolean flag)
- Indique si l'URL doit pointer vers la zone publique ou protégée.
- void setSecure(Boolean flag)
- Indique si une connexion https sécurisée est requise.
- Writer writeCopy(Writer out)
- Envoie l'URL au rédacteur indiqué. Gère l'état de l'URL. Cette méthode, par exemple, peut être utilisée pour écrire plusieurs fois l'URL.
- Writer writeDispose(Writer out)
- Envoie l'URL au rédacteur indiqué et libère finalement l'état de l'URL. Après l'appel de cette méthode, vous ne devez plus accéder à l'objet EngineURL.
- void dispose()
- La méthode dispose() est héritée de l'interface Disposable. Elle doit être invoquée pour indiquer que l'objet EngineURL n'est plus nécessaire. The EngineURL object must not be accessed again after invoking this method. Vous pouvez aussi appeler la méthode writeDispose(), qui appelle dispose().
getState() est la méthode la plus importante. Elle renvoie l'objet de cadre d'état auquel fait référence cette instance
EngineURL donnée.
Remarque : La méthode renvoie une interface de contrôleur (
StateHolderController) qui permet au programmeur de modifier l'état de cette instance
EngineURL. Voir
Interface SPI de l'accesseur.
URL de la ressource
Les URL relatives aux ressources génériques, telles que, mais sans s'y limiter, les règles grammaticales des fichiers, des icônes et vocales ne peuvent pas contenir des états de navigation et sont donc représentées à l'aide d'une interface distincte appelée com.ibm.portal.state.DisposableURL. L'interface DisposableURL offre pratiquement les mêmes méthodes que EngineURL, mais ne propose pas de méthode getState().
Les URL des ressources peuvent en outre être créées à l'aide des services de génération d'URL fournis avec la SPI d'état de navigation. Voir Services de génération d'URL pour en savoir plus.