Skip to content

Variables

Notation

De façon générale, les variables peuvent être référencées selon la notation ${name}name est le nom de la variable. Ce dernier peut potentiellement contenir un préfixe délimité par le caractère :, par exemple ${var:context}. Les différents préfixes et noms de variables reconnus sont décrits dans ce chapitre.

Variables systèmes

Ewt s'appuie sur la librairie commons-text pour le traitement des variables. Cette librairie fournit par défaut différentes variables. En voici quelques exemples tirés de la documentation de commons-text.

Type de valeur Exemple de syntaxe
System Property ${sys:user.dir}
Environment Variable ${env:USERNAME}
Base64 Decoder ${base64Decoder:SGVsbG9Xb3JsZCE=}
Base64 Encoder ${base64Encoder:HelloWorld!}
Java Constant ${const:java.awt.event.KeyEvent.VK_ESCAPE}
Date ${date:yyyy-MM-dd}
Timestamp ${date:yyyy-MM-dd HH:mm:ss.SSS}
File Content ${file:UTF-8:src/test/resources/document.properties}
Java ${java:version}
Localhost ${localhost:canonical-name}
Properties File ${properties:src/test/resources/document.properties::mykey}
Resource Bundle ${resourceBundle:org.apache.commons.text.example.testResourceBundleLookup:mykey}
URL Decoder ${urlDecoder:Hello%20World%21}
URL Encoder ${urlEncoder:Hello World!}
XML XPath ${xml:src/test/resources/document.xml:/root/path/to/node}

Variables spécifiques à Ewt

La liste des variables de commons-text est complétée par des valeurs plus spécifiques à Ewt. Ces derniers doivent utiliser le préfixe var:.

Syntaxe Description Exemple de valeur
${var:applicationName} Nom de l'application. Plus exactement : nom du répertoire depuis lequel l'application est chargée. MyApplication
${var:context} Contexte courant (voir la documentation concernant les contextes ici) demande[b42d4d14-7ab5-44a6-845a-4c2f1975f33e].documents
${var:contextHash} Version hashée du contexte courant. La version hashée est à utiliser dans les formulaires HTML. Non disponible dans les scripts. ED83EEF5AFFB1475DF007EF6D88BE33B
${var:contextPath} Contexte du servlet (uniquement dans le cas d'une requête client) /ewt
${var:homeDirectory} Chemin du dossier de l'application C:/opt/ewt/MyApplication/
${var:language} Langue utilisée dans le thread courant (en minuscules) fr
${var:pathInfo} Path du servlet (uniquement dans le cas d'une requête client) /MyApplication
${var:servlet} Nom du servlet. Attention, il s'agit ici du nom logique du servlet, qui peut varier du pattern d'url web
${var:servletPath} Path du servlet (uniquement dans le cas d'une requête client, donc pas dispo sur un thread lancé par le scheduler p.ex.) /web
${var:sessionEol} Timestamp de fin de session (en format unix) 1746086990739
${var:sessionId} Numéro de session courant 993eee27-b259-4c79-8416-0ee02a4402db
${var:userLogin} Login de l'utilisateur john
${var:userPrincipal} Identifiant de l'utilisateur (principal) E2258974
${var:workDirectory} Chemin du répertoire de travail C:/apps/apache-tomcat-10.1.33/work/Catalina/localhost/ewt/MyApplication/
${contextHash:expression} Version hashée du contexte désigné par l'expression. Non disponible dans les scripts.
${persistentObject:name} Représentation en chaîne de caractères de l'objet persistent désigné par le name.
${transientObject:name} Représentation en chaîne de caractères de l'objet transient désigné par le name.
Note: Cette notation n'est disponible que pour les threads utilisateur, c.-à-d. celles déclenchées par une requête reçue d'un client ou d'un user-agent (typiquement un navigateur).

Échappement

Pour échapper une référence de variable, c'est-à-dire pour faire en sorte que la référence de variable ne soit pas substituée, il faut préfixer la référence avec le caractère $.

Ainsi, la valeur $${var:applicationName} ne sera pas substituée.