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 :
Je crée des champs de saisi en fonction des clés d'une map stockée dans l'objet YBean.
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>
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 YBeanEn revanche je n'arrive pas à trouver de solution pour les éléments qui appartiennent à une map de mon objet YBeanFonctionne
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 }Si mon explication n'est pas assez clair n'hésiter pas a me poser plus de questions.Ne Fonctionne pas
En espérant une réponse très prochainement,
bien a vous,
Jimmy
Partager