2016-08-26 1 views
1

Je joue avec le système de validation de formulaire MVK ZK 8 et généralement il semble faire ce que je veux, mais je me demande quelle est la définition de l'indice de propriété dépendante ...ZK MVVM Validation - Dependent Property Array contenu?

Prenons un simple validateur. ..

public class FormValidator extends AbstractValidator { 

    @Override 
    public void validate(final ValidationContext ctx) { 

     Property[] properties = ctx.getProperties("firstName"); 

     Object value0 = properties[0].getValue(); 
     Object value1 = properties[1].getValue(); 

    } 
} 

Ainsi, lorsque cela est appelé avant la sauvegarde commande, pour chaque propriété, je reçois un tableau Property[] de longueur 2. Mais de toute façon, je dois encore savoir ce qui est stocké dans [0] et ce qui est stocké dans [1]. Parfois, il semble que [0] stocke la valeur actuelle (qui peut ou ne peut pas être valide selon le validateur de champ là) et [1] la dernière entrée valide ... Mais parfois, il semble être l'inverse ...

exemples dans le documentation semblent toujours simplement prendre le premier élément ([0]) pour la validation, mais je voudrais comprendre ce que les deux parties de cette paire signifient réellement ...

Quelqu'un a une idée pour cela?

+0

Quel type de champ essayez-vous de valider? datebox, textbox, autre ... – barracus

+0

Mon cas de test était un formulaire simple avec deux zones de texte (prénom, nom de famille) et un bouton de sauvegarde avec la commande 'save' et la validation de forme typique avant 'save'. Lorsque le validateur de formulaire est utilisé, pour chacune des deux zones de texte, j'obtiens un tableau de propriétés de longueur == 2. Je veux savoir ce que signifie [0] et [1]. –

Répondre

0

je pourrais être de la marque avec ma réponse, mais si vous utilisez ZK8, vous devriez regarder dans Form binding

De cette façon, vous n'avez pas à manipuler les propriétés dans votre validateur et peut récupérer un correspondant de l'objet proxy le haricot que vous utilisez pour votre formulaire. Si vous utilisez un POJO utilisateur avec un attribut firstName et lastName.

User myProxy= (User) ctx.getProperty().getValue(); 

Et vous pouvez valider les deux champs en faisant simplement getFirstName et getLastName sur myproxy.

Espérons que ça aide.