Variables¶
Notation¶
De façon générale, les variables peuvent être référencées selon la notation
${name}
où 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.