clés de contexte de boîte de dialogue
Le contexte de boîte de dialogue (DCX) agit comme mémoire transitoire d'une boîte de dialogue. Il conserve des informations contextuelles transmises d'un portlet vers les portlets suivants et fournit les informations à tous ces portlets ultérieurs. Les données stockées dans le contexte de boîte de dialogue (DCX) le sont uniquement pour la durée de vie d'une session utilisateur. Si un utilisateur se déconnecte du portail ou si la session utilisateur arrive à expiration, l'instance de boîte de dialogue courante, toutes les instances de boîte de dialogue en attente et toutes les données associées sont perdues.
- Le contexte de boîte de dialogue (DCX) est divisé en segments, chacun d'eux conservant les données ou les informations contextuelles d'une instance de boîte de dialogue unique.
- Normalement, lorsque vous indiquez des événements,
QNamedéfinit le mode de stockage de la charge correspondante dans le segment de l'instance de boîte de dialogue spécifique et sous quelle clé.Par exemple, le contexte de boîte de dialogue comporte les informations suivantes après que vous avez exécuté la transition :- Une entrée avec
key = passengerID. - Une valeur correspondant au contenu envoyé avec l'événement correspondant.
Le portlet d'informations de location de véhicule
portlet2est ensuite initialisé avec les données stockées dans le contexte de boîte de dialogue (DCX), sous la cléuserID. Si aucune précédente transition n'a stocké un élément quelconque sous la cléuserID, portlet2ne reçoit pas de données.Exemple de code<transition> <source> <transition-endpoint nameref="portlet1"> <event qname="passengerID"/> </transition-endpoint> </source> <target> <transition-endpoint nameref="portlet2"> <event qname="userID"/> </transition-endpoint> </target> </transition> - Une entrée avec
Les clés de contexte de boîte de dialogue (DCX) permettent d'indiquer la clé sous laquelle un portlet enregistre les données dans le contexte DCX, ou la clé sous laquelle un portlet lit des données à partir du contexte DCX.
portlet1 de communiquer avec portlet2, vous disposez des deux options ci-dessous : - Vous pouvez faire en sorte que
portlet1enregistre sa charge sous la cléuserID,même s'il émet un événement avecQName passengerID. L'exemple de code suivant montre comment vous pouvez amenerportlet1à stocker des données soususerID.Exemple de code<transition> <source> <transition-endpoint nameref="portlet1"> <event qname="passengerID" dcx-key="userID"/> </transition-endpoint> </source> <target> <transition-endpoint nameref="portlet2"> <event qname="userID"/> </transition-endpoint> </target> </transition> - Vous pouvez faire en sorte que
portlet2lise la clépassengerIDmême s'il attend un événement avecQName userID. L'exemple de code suivant montre comment vous pouvez amenerportlet2à lire des données souspassengerID.Exemple de code<transition> <source> <transition-endpoint nameref="portlet1"> <event qname="passengerID"/> </transition-endpoint> </source> <target> <transition-endpoint nameref="portlet2"> <event qname="userID" dcx-key="passengerID"/> </transition-endpoint> </target> </transition>