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.