Initiation au modèle de programmation côté client pour les portlets

L'initiation au modèle de programmation côté client requiert quelques mises à jour des JSP du portlet.

Procédure

  1. Ajoutez une référence à la bibliothèque de balises du modèle de programmation côté client :
    <%@ taglib uri="http://www.ibm.com/xmlns/prod/websphere/portal/v6.1/portlet-client-model"
         prefix="portlet-client-model" %>
  2. Déclarez les modules du modèle de programmation côté client que vous voulez utiliser :
    <portlet-client-model:init>
         <portlet-client-model:require module="ibm.portal.xml.*"/>
         <portlet-client-model:require module="ibm.portal.portlet.*"/>
    </portlet-client-model:init>
    Pour la liste complète des modules à utiliser avec le modèle de programmation côté client, voir la documentation de l'API publique.
  3. Pour pouvoir travailler avec le modèle de programmation côté client dans vos portlets, utilisez l'objet ibm.portal.portlet.PortletWindow comme point d'entrée :
    <script>
       var <%=namespace%>_portletWindow = new ibm.portal.portlet.PortletWindow("<%=portletWindowID%>");
    </script>
    <script>
       dojo.addOnLoad(function() {
          <%=namespace%>_portletWindow = new ibm.portal.portlet.PortletWindow("<%=portletWindowID%>");
       });
    </script>
    Remarque : Utilisez la balise portlet-client-model:init pour créer la variable de script portletWindowID et l'utiliser dans le fichier JSP. L'exemple suivant montre comment démarrer une demande XMLPortletRequest :
    <script>
    
    function sendXPR( /*string*/url, /*Function*/callback, /*String*/errMsg ) {
       var xpr = <%=namespace%>_portletWindow.newXMLPortletRequest();
       var me = this;
       xpr.onreadystatechange = function () { 
          if ( xpr.readyState == 4 ) {    
             if ( xpr.status == 200 ) {
                callback( xpr.responseText );
             }
          else {
             <%=namespace%>_portletWindow.logError("The request failed!", errMsg );
    
             }    
          }
       };
       xpr.open( "GET", url );
       xpr.send( null );
    }
    </script>