• Home
  • Docker
  • Kubernetes
  • LLMs
  • Java
  • Ubuntu
  • Maven
  • Big Data
  • Archived
ColdFusion | CFML : cfloop
  1. Boucles avec un indice (index loop/for loop)
  2. Boucles conditionnelles
  3. Boucler sur un tableau
  4. Boucler sur une structure
  5. Boucler sur une liste
  6. Boucler sur un intervalle de dates/temps
  7. Boucler sur une requête
  8. Boucler sur un fichier
  9. Utiliser CFBREAK et CFCONTINUE

  1. Boucles avec un indice (index loop/for loop)
    - En utilisant la syntaxe CFML :

    Attribut Requis Description
    from Valeur de début pour l'indice de la boucle.
    to Valeur de fin pour l'indice de la boucle.
    index Nom de la variable qui va correspondre à l'indice de la boucle.
    step (valeur par défaut : 1)

    Valeur pour incrémenter/décrémenter l'indice de la boucle à chaque itération.

    - En utilisant le tag CFScript :

    Note de performance (1) : Les boucles avec le tag cfloop sont moins rapides que les boucles dans CFScript. Voici le code Java généré par ColdFusion pour les deux cas :

    - Le tag cfloop est traduit en :

    - La boucle dans le tag CFScript ColdFusion est traduite en :

    Le code Java du tag CFScript est clairement plus simple. Tous les détails ajoutés pour le tag cfloop sont la cause de différence de performance qu'on peut facilement tester si les boucles sont longues.

    Note de performance (2) : ColdFusion peut insérer un saut de ligne ou une ligne vide pour chaque saut de ligne entre les tags CFML. Dans l'exemple précédent, il y aura des sauts de lignes dans la page HTML pour chaque itération de la boucle cfloop. L'ajout de ces lignes peut "affecter" les performances de la page, ce qui est normal puisque ColdFusion ajoute du code pour écrire ces lignes vides en plus la taille de la page HTML devient plus grande avec l'ajout de ces lignes vides. Vous pouvez éviter l'ajout de ces sauts de lignes si :
    - vous enleviez les espaces entre les tags !
    - vous utilisiez la fonction « WriteOutput » !
    - sinon, vous pouvez utiliser le tag « cfprocessingdirective » qui permet d'éliminer les lignes vides (j'ai essayé de le tester mais ca n'a pas fonctionner !).

    Exemple :

    Voici le résultat affiché dans le navigateur :

    Voici le code html généré :

    Remarques :
    - Pour la première boucle, il y a un saut de ligne et une ligne vide pour chaque itération.
    - Pour la deuxième boucle, il y a juste un saut de ligne pour chaque itération.
    - Pour la troisième boucle, il n'y a aucun saut de ligne.

    TODO : Ajouter des détails sur CfJspPage.checkRequestTimeout("cfloop")
  2. Boucles conditionnelles
    - En utilisant la syntaxe CFML :

    Attribut Requis Description
    condition Condition pour contrôler la continuité de la boucle (évaluer à chaque itération).

    - En utilisant le tag CFScript : while

    - En utilisant le tag CFScript : do while

    - En utilisant le tag CFScript : for

  3. Boucler sur un tableau
    - En utilisant la syntaxe CFML :

    Attribut Requis Description
    array Tableau.
    index Nom de la variable qui va correspondre aux éléments du tableau.

    - En utilisant la syntaxe CFML :

    - En utilisant le tag CFScript : for

  4. Boucler sur une structure
    - En utilisant la syntaxe CFML :

    Attribut Requis Description
    collection Structure.
    item Nom de la variable qui va correspondre aux clés de la structure.

    - En utilisant le tag CFScript : for in

  5. Boucler sur une liste
    - En utilisant la syntaxe CFML :

    Attribut Requis Description
    list Liste.
    index Nom de la variable qui va correspondre aux éléments de la liste.
    delimiters (valeur par défaut : ,)

    Séparateur des éléments de la liste.
    Il est possible de spécifier plusieurs séparateurs.
  6. Boucler sur un intervalle de dates/temps
    - En utilisant la syntaxe CFML :


    Attribut Requis Description
    from Valeur de début pour l'indice de la boucle.
    to Valeur de fin pour l'indice de la boucle.
    index Nom de la variable qui va correspondre à l'indice de la boucle.
    step (valeur par défaut : 1 Jour)

    Valeur pour incrémenter/décrémenter l'indice de la boucle à chaque itération.
  7. Boucler sur une requête
    - En utilisant la syntaxe CFML :

    Attribut Requis Description
    query Nom de la variable de l'objet requête.
    startRow Numéro de ligne de l'objet requête, à utiliser comme début de la boucle.
    endRow Numéro de ligne de l'objet requête, à utiliser pour arrêter la boucle.

    Remarque : La variable « currentRow » est une variable initialisée par ColdFusion qui donne le numéro de la ligne de l'objet requête à l'itération courante.
  8. Boucler sur un fichier
    - En utilisant la syntaxe CFML :

    Attribut Requis Description
    file Nom et chemin du fichier.
    index Nom de la variable qui va correspondre aux lignes lues du fichier.
    characters Nombre de caractères à lire du fichier à chaque itération de la boucle.
  9. Utiliser CFBREAK et CFCONTINUE
    Le tag CFBREAK arrête l'exécution de la boucle alors que le tag CFCONTINUE arrête l'exécution du code de la boucle pour l'itération en cours et saute à la prochaine itération de la boucle.

    - En utilisant la syntaxe CFML :

    Voici le résultat affiché dans le navigateur :

    - En utilisant le tag CFScript :

    Voici le résultat affiché dans le navigateur :

© 2025  mtitek