Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Développement Web en Java Discussion :

Condition if avec ThymeLeaf


Sujet :

Développement Web en Java

  1. #1
    Membre chevronné
    Condition if avec ThymeLeaf
    Bonjour,

    Je commence avec ThymeLeaf, et j'ai un peu de mal avec les conditions "if".

    Dans un formulaire je souhaite bloquer la saisie des clef primaire, quand je suis en modification, car j'utilise le même formulaire pour l'ajout ou la modification.

    J'ai écrit le code ci-dessous pour le champs input concerné.
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
     
    <input type="text" th:field="*{code}" id=" name" placeholder="code" th:if="${mode} == 'update'" th:disabled="disabled" >


    Je n'ai pas besoin du "th:unless...", car si c'est faux je ne mets pas d'attribut "disabled"
    Globalement je trouve la construction avec "unless" un peu verbeuse.

    Pour l'instant si c'est vrai ça s'affiche sinon si c'est faux la ligne entière ne s'affiche pas.
    Et c'est ça que je ne comprends pas.

    Merci si vous pouvez m'éclairer.

    Cordialement
    Consultez mes articles sur l'accessibilité numérique :

    Comment rendre son application SWING accessible aux non voyants
    Créer des applications web accessibles à tous

    YES WE CAN BLANCHE !!!

    Rappelez-vous que Google est le plus grand aveugle d'Internet...
    Plus c'est accessible pour nous, plus c'est accessible pour lui,
    et meilleur sera votre score de référencement !

  2. #2
    Membre actif
    Bonjour à vous,

    Je suppose que vous voulez désactiver ou non le champs en fonction d'une condition ?

    l'attribut th:if sert uniquement à déterminer si une balise (et ses enfants) s'affichent ou pas (source).

    Dans l'exemple ci-dessous, la balise div, label et input seront affiché uniquement si la variable condition vaut true. Sinon, rien ne s'affiche.
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <div th:if="${condition}">
        <label>Libellé</label>
        <input type="text" />
    </div>


    Cependant, le créateur de Thymeleaf à pensé au cas des attributs disabled et similaire (source).

    Vous pouvez donc mettre directement la condition dans l'attribut comme ceci
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
     
    <input type="text" th:field="*{code}" id=" name" placeholder="code" th:disabled="${mode} == 'update'" >


    Bien à vous

  3. #3
    Membre chevronné
    Bonjour,

    C'est exactement ça.
    JE veux que dans le formulaire le champs de la clef primaire soit désactivé, quand on modifie un enregistrement et actif pour une création.
    Donc j'ajuste seulement l'attribut.

    Je n'avais pas bien compris que la condition s'appliquait à toute la ligne.
    Et je trouvais redondant de faire deux ligne avec 'unless'

    Merci pour le code et pour le lien

    Cordialement
    Consultez mes articles sur l'accessibilité numérique :

    Comment rendre son application SWING accessible aux non voyants
    Créer des applications web accessibles à tous

    YES WE CAN BLANCHE !!!

    Rappelez-vous que Google est le plus grand aveugle d'Internet...
    Plus c'est accessible pour nous, plus c'est accessible pour lui,
    et meilleur sera votre score de référencement !

###raw>template_hook.ano_emploi###