Académique Documents
Professionnel Documents
Culture Documents
MOTEUR D’EXPRESSION
MANUEL D’UTILISATION CARTHAGO
Ref. MSEXP/GU/01
Projet
Version 1.0
Rue lac Ghar El Melh - Les berges du lac - 1053 Tunis – Tunisie
Phone : (216) 71 962.030 - Fax : (216) 71 961.299
www.bfigroupe.com
TABLE DES MATIERES
1. Introduction ____________________________________________________________ 3
2. Définition d’un moteur d’expression : _______________________________________ 3
1.1 Les types primaires __________________________________________________________ 4
1.2 Les Opérateurs _____________________________________________________________ 4
1.3 Accès aux propriétés des objets ________________________________________________ 6
1.4 Les fonctions _______________________________________________________________ 8
3. Moteur d’expression Carthago _____________________________________________ 8
3.1 Expression sur entité ________________________________________________________ 8
3.2 Explorateur de modèle ______________________________________________________ 10
3.3 Test expression ____________________________________________________________ 11
3.4 Liste des alias _____________________________________________________________ 12
Une expression permet également d'accéder simplement aux propriétés des objets.
{ object.property }
{ object["index property"] }
{ object[index] }
Cependant, tous les éléments des Expressions restent des objets, c'est pourquoi ils sont
convertis en objet du type de la classe wrapper correspondante (classe représentant un
type primaire), comme le montre le tableau suivant :
Remarque :
Contrairement aux langages Java, les chaînes de caractères peuvent être représentés
à la fois avec des cotes simples ou doubles
+ Addition
Les opérateurs arithmétiques ne peuvent être utilisés
- Soustraction
que sur des données numériques.
* Multiplication
/ ou div Division
% ou mod Modulo
Opérateurs logiques
Autres
empty [*] True si l'opérande est null,
une chaîne vide, un tableau
vide, une Map vide ou une
List vide false sinon.
Remarque :
L'opérateur () permet de changer l'ordre des opérateurs. L'ordre d'exécution des opérateurs est
lemême que dans le langage Java, c'est à dire que l'expression
{10 + 2 * 2} donnera 14 tandis que{(10 + 2) * 2} donnera 24.
Ainsi, pour accéder à la propriété name de notre bean, on peut utiliser les syntaxes suivantes :
Remarque :
Quel que soit l'opérateur utilisé, le moteur d’expression retourne un message d’erreur si le bean
ne comporte pas d'accesseur pour la propriété.
Par rapport à l'opérateur 'point', l'opérateur 'crochet' utilise une chaîne de caractère pour déterminer
le nom de la propriété. Cette chaîne peut très bien être le résultat de l'évaluation d'un autre bean, par
exemple, si config.propertyName comporte le nom de la propriété à afficher :
{bean [config.propertyName]}.
{ person.address.city }
{ person.['address'].['city'] }
{ person.["address"].["city"] }
{ person.address.['city'] }
{ person.["address"].city }
etc.
L'opérateur 'crochet' est également utilisé pour accéder aux beans indexés et mappés, il est donc
fortement conseillé de lui préférer l'opérateur 'point' lorsque c'est possible afin d'éviter les confusions.
{ list[0] }
{ list[1] }
{ list["2"] }
{ list["3"] }
{ list[ config.value ] }
etc.
Si l'index n'est pas un nombre entier, il sera automatiquement convertit (ce qui risque de
provoquerune erreur).
Remarque :
L'opérateur 'point' ne peut pas être utilisé sur un tableau ou une List
Au niveau de cet écran on sélectionne le nom de l’entité pour laquelle on veut évaluer une
expression.
Après avoir fait une recherche sur les instances de cette entité, on en choisit une et selon le
besoin on introduit soit une expression simple soit une expression critère.
Et pour afficher les champs de cette entité il faut cliquer sur le bouton Rafraîchir.
Une constante retourne une valeur alors qu’une utilité permet d’exposer des méthodes.