Bonjour,

Je travaille sur un projet en groovy grails, et bloque sur un affichage de messages d'erreurs à l'emplacement du champ de saisi non renseigné.

Quelques explications :

Ma vue ressemble a ça :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<g:if test="${!YBean.model?.isEmpty()}">
                <div class="alerte fieldcontain">
                    <g:message code="X.variable.label"/>
                    <ul class="property-list X" id="listeVariables">
                    <g:each in="${YBean.map}" var="varMap" status="i">
                        <li class="fieldcontain">
                            <span id="variableUsed" class="property-label">
                                <g:fieldValue bean="${varMap}" field="key"/> : </span>
                            <span class="property-value" aria-labelledby="variableUsed">
                                <g:textField name="${varMap.key}" value="${varMap.value}"/>
                                <div class="errorMessage">
                                    <g:renderErrors bean="${YBean.model}" as="list" field="key"/>
                                </div>
                            </span>
                        </li>
                    </g:each>
                    </ul>
                </div>
            </g:if>
Je crée des champs de saisi en fonction des clés d'une map stockée dans l'objet YBean.
J'aimerais que pour chaque champs non renseignés, lorsque l'on valide, ça retourne un message d'erreurs (non spécifique) a l'endroit de la saisie.

La méthode de mon controller nous amene dans une méthode de validation des données dans le service correspondant.

Actuellement, ce que je cherche marche très bien avec des attributs direct de mon objet YBean.


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
        if (X.name().equals(X.name())) {
            if (!YBean.var1) {
                YBean.errors.rejectValue('var1', 'X.var1.error')
            }
        }
return YBean
Fonctionne
En revanche je n'arrive pas à trouver de solution pour les éléments qui appartiennent à une map de mon objet YBean
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
        YBean.map.each {key, value->
            if (!value){
                YBean.errors.rejectValue(key, 'X.variable.error')
            }
        }
        return YBean
    }
Ne Fonctionne pas
Si mon explication n'est pas assez clair n'hésiter pas a me poser plus de questions.

En espérant une réponse très prochainement,

bien a vous,
Jimmy