Communication inter-portlet par pont d'application Web
La passerelle d'application Web prend en charge l'envoi d'événements à partir du client et du serveur. Le portlet Ancrage Web peut envoyer et recevoir des événements d'autres portlets sur la même page. Il utilise une technique côté client basée sur OpenAjax. Avec les événements côté client, aucune régénération de page n'est requise. Le portlet Ancrage Web peut également envoyer des événements à d'autres portlets. Il utilise une technique côté serveur basée sur la prise en charge des événements JSR 286. Avec les événements côté serveur, une régénération complète de la page est requise.
Côté client : Portlet Ancrage Web en tant que diffuseur de publications
La gestion d'événements côté client utilise la méthode OpenAjax.hub.publish(name, publisherData). Le paramètre name est la rubrique dans laquelle l'événement est publié. Le paramètre publisherData correspond aux données envoyées comme argument à la fonction gestionnaire qui gère l'événement.
Pour permettre au portlet Ancrage Web de publier un événement côté client, définissez le paramètre Publier un événement côté client sur Oui. Le portlet Ancrage Web envoie toujours l'élément source sous la forme d'un nœud DOM (Document Object Model) comme données publisherData. L'élément source est l'élément sur lequel l'utilisateur a effectué une action qui a donné lieu à la publication de l'événement. Le type de préférence d'élément source d'événement est utilisé pour indiquer le type d'éléments pouvant entraîner la publication d'un événement. Le Type d'événement capturé indique le type d'événements qui doivent être capturés à l'intérieur de l'iFrame du portlet Ancrage Web. Les deux événements ou éléments peuvent être sélectionnés dans la liste ou saisis sous la forme d'une liste de valeurs séparées par des virgules. Seuls les événements capturés à l'intérieur de l'iframe entraînent la publication d'un événement. Par défaut, le portlet Ancrage Web publie dans la rubrique globale qui est com.ibm.vwat.event. Cependant, utilisez Publier une rubrique d'événement pour publier dans une autre rubrique. La valeur de Publier une rubrique d'événement est ajoutée à "com.ibm.vwat.event" pour former la nouvelle rubrique. Par exemple, si Publier une rubrique d'événement est défini sur "myTopic.subTopic1.subTopic2", l'événement est publié dans "com.ibm.vwat.event.myTopic.subTopic1.subTopic2".
Côté client Portlet Ancrage Web en tant qu'abonné
Cette méthode côté client vous permet de vous abonner à une rubrique avec la méthode OpenAjax.hub.subscribe(name, refOrName).
Pour permettre au portlet Ancrage Web de s'abonner à un événement, définissez le paramètre S'abonner à un événement côté client sur Oui. Par défaut, le portlet Ancrage Web s'abonne à la rubrique globale qui est "com.ibm.vwat.event". Cependant, utilisez S'abonner à une rubrique d'événement pour vous abonner à un autre sujet. Le portlet Ancrage Web attend toujours une URL ou un fragment d'URL tel que publisherData. publisherData définit l'attribut src de l'iFrame du portlet Ancrage Web. Cet attribut est utilisé pour afficher le contenu de la nouvelle URL sur le portlet Ancrage Web. Toutefois, la préférence de modèle d'URL peut être utilisée pour ajouter un préfixe à publisherData. Par exemple, si le modèle d'URL a la valeur http://www.abc.com et que publisherData est /xyz, la valeur utilisée pour définir l'attribut src du cadre iFrame est http://www.abc.com/xyz.
La valeur renvoyée par processSubscribedEvent est utilisée comme URL pour le portlet Ancrage Web abonné.
Côté serveur : Web Dock portlet as subscriber
- ss_subscriber_reset : réinitialise le portlet Ancrage Web pour que l'objet iFrame désigne l'emplacement initial indiqué dans Editer les paramètres partagés. Définition d'événement :
<event-definition> <qname>vwat:ss_subscriber_reset</qname> <alias>xsd:string</alias> <value-type>java.lang.String</value-type> </event-definition> - ss_subscriber_set : définit l'URL de l'objet iFrame du portlet Ancrage Web en fonction de la valeur reçue de l'événement. Définition d'événement :
<event-definition> <qname>vwat:ss_subscriber_set</qname> <alias>xsd:string</alias> <value-type>java.lang.String</value-type> </event-definition> - ss_subscriber_append : définit l'URL de l'objet iFrame du portlet Ancrage Web après que vous avez ajouté la valeur reçue de l'événement au modèle d'URL. Définition d'événement :
<event-definition> <qname>vwat:ss_subscriber_append</qname> <alias>xsd:string</alias> <value-type>java.lang.String</value-type> </event-definition>
Côté serveur : Web Dock portlet as publisher
Vous pouvez activer le portlet Ancrage Web pour publier un événement côté serveur. Définissez Publier un événement côté serveur sur oui. Créez une connexion du portlet Ancrage Web vers un portlet cible à l'aide de l'Utilitaire de connexion de portlet. Le portlet Ancrage Web publie une chaîne JSON contenant les propriétés ID et value de l'élément source. Par exemple, si le Type d'élément source d'événement est a, alors la valeur est la propriété HREF de l'élément. L'élément source d'événement est l'élément sur lequel l'utilisateur a effectué une action. Cette action provoque la publication de l'événement. Le Type d'événement capturé est utilisé pour indiquer le type d'événement ; par exemple, onclick, onchange. Les deux événements ou éléments peuvent être sélectionnés dans la liste ou saisis sous la forme d'une liste de valeurs séparées par des virgules. Cet événement doit être capturé à l'intérieur de l'iFrame du portlet Ancrage Web. Seuls les événements capturés dans l'iFrame du portlet Ancrage Web entraînent la publication d'un événement.
Le modèle d'URL est un préfixe qui est ajouté à l'élément source d'événement.