salut,
dans ma page jsf j'utilise un validator sur un inputText:
Mon champ est obligatoire (required), j'utilise le validator pour afficher un message personnalisé et pour gérer l'insertion des espaces.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 <h:inputText id="line1" value="#{terminalForm.line1}" maxlength="24" onkeyup="lengthHL1()" required="true" validator="#{terminalForm.checkLine1}"/>
Mon validator est donc le suivant:
Mon problème est au moment du rechargement du formulaire, quand l'inputText est vide est qu'on a cliqué sur mon bouton sauvegarder.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 public void checkLine1(FacesContext context, UIComponent component, Object object) throws ValidatorException { String var = object.toString(); var = (var != null)? var=var.trim():""; if(var.length()==0){ throw new ValidatorException( new FacesMessage("Line 1: Value is required.", null)); }
Si je lance le programme en mode debug, je constate que les fonctions get sont appelées une première fois avec des valeurs null, ensuite un deuxième fois avec les bonnes valeurs.
Cela me cause des problèmes dans certaines fonctions get ou j'effectue des opérations sur les valeurs avant de les afficher!
Pourquoi mon programme réagit comme ça? C'est un problème de mon code ou c'est jsf qui fonctionne comme ça? Il y a moyen pour l'éviter ou bien je dois mettre des conditions de not null sur mes fonctions (cela ne m'arrange pas trop..)?
Si ce n'est pas claire, posez moi des questions svp!
Merci pour toute réponse![]()
Partager