Looking for xpages Answers? Try Ask4KnowledgeBase
Looking for xpages Keywords? Try Ask4Keywords

xpagesDémarrer avec xpages


Remarques

XPages est une plate-forme Web Framework pour IBM Notes. Il a été introduit dans Lotus Domino 8.5 (doit être vérifié) .

Il est basé sur JSF (JavaServer Faces) avec de nombreuses extensions utiles pour représenter et manipuler des données IBM Notes.

IBM propose un tutoriel pour XPages: https://www-10.lotus.com/ldd/ddwiki.nsf/dx/Tutorial-intro-to-XPages.htm

Dans les coulisses du backend Les XPages sont des fichiers XML similaires au HTML. Le serveur Domino crée enfin du vrai HTML et envoie ces pages au client. La logique métier est implémentée dans le code JavaScript natif ("clientside JavaScript - CSJS") et pseudo JavaScript ("serveurs JavaScript - SSJS").

Installation ou configuration

En bref: XPages fait partie d'IBM Domino Designer. L'installation ou l'installation supplémentaire n'est pas requise pour les XPages.


Premier exemple de XPage / Hello-World

Pour créer votre première XPage, vous devez d'abord créer une nouvelle NSF. Ouvrez IBM Domino Designer et ouvrez le menu " Fichier " -> " Nouveau " -> " Application ".

Dans la boîte de dialogue contextuelle, définissez les paramètres suivants:

  1. Sélectionnez le serveur sur lequel la NSF sera créée (peut également être "local").
  2. Entrez ensuite un titre, par exemple " Hello World NSF ".
  3. Ensuite, entrez un nom de fichier de votre nouvelle NSF, par exemple " hello-world.nsf ".
  4. Ignorez le bouton "Encription ..." pour conserver les paramètres par défaut.
  5. Cochez l'option " index complet ".
  6. Puis cliquez sur "OK".

Le nouveau NSF est créé.

Cliquez maintenant avec le bouton droit sur la section "[XPages]" dans le navigateur de l’application et sélectionnez " new XPage ... ".

  1. Entrez un titre de votre nouvelle XPage, par exemple " HelloWorld ". Cela va créer un fichier nommé "HelloWorld.xsp".
  2. Le champ de commentaire peut être laissé vide pour cet exemple simple.
  3. Cliquez sur "OK" et la page est créée.

Double-cliquez sur votre nouveau fichier HelloWorld XPage, que vous pouvez trouver dans la section "[XPages]".

Sélectionnez l'onglet "Source" (situé en bas de l'éditeur) et ajoutez un simple composant textfield à votre page. Cela devrait être le résultat:

<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core" pageTitle="Hello My World">

  <xp:text id="simpleTextField" value="Hello World!!!!" />

</xp:view>
 

Enregistrez la page et créez le projet (cliquez avec le bouton droit de la souris sur votre application "Hello World NSF" et sélectionnez l'entrée de menu "build").

Maintenant, ouvrez un navigateur comme Internet Explorer et accédez au nouveau XPage de la NSF de votre application. Par exemple, " http://mydominoserver.com/hello-world.nsf/HelloWorld.xsp " et vous verrez votre texte Hello World.

Utiliser des textes externes avec message.properties dans XPages

Préparer

Commencez par créer un fichier " message.properties " dans Resources / Files /. Exemple:

##############
# Test message.properties
##############
label.age=Enter your age:
validate.error.reqired.age=Sorry, but you have to give away the secret of your age ...
 

Ensuite, connectez la ressource avec votre XPage ou contrôle personnalisé:

<xp:this.resources>
    <xp:bundle src="/messages.properties" var="appMsg" />
    ....
</xp:this.resources>
 

Remarque: Le "var" définit le nom que vous souhaitez utiliser dans vos XPages ou contrôles personnalisés pour référencer la carte de message.

Usage

Vous pouvez maintenant utiliser la carte de message avec JavaScript côté serveur ( #{javascript:appMsg.getString('...')} ) ou avec EL ( #{appMsg['...']} ).

Exemple d'utilisation:

...
<!-- to show the error message: -->
<xp:messages />

<!-- use with ssjs: -->
<xp:text value="#{javascript:appMsg.getString('label.age')}" escape="false" />

<!-- use with EL: -->
<xe:djNumberSpinner value="#{myDoc.age}" maxLength="2" javaType="int">
    <xp:this.validators>
        <xp:validateRequired message="#{appMsg['validate.error.reqired.age']}" />
    </xp:this.validators>
</xe:djNumberSpinner>
...