IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
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

JSF Java Discussion :

La joie des validators


Sujet :

JSF Java

  1. #1
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Juillet 2002
    Messages
    705
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 705
    Par défaut La joie des validators
    Alors j'ai ce code:
    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
     
    	this.firstName = new HtmlInputText();
    		firstName.setId("input_prenom");
    		ValueBinding binding = FacesContext.getCurrentInstance()
    				.getApplication().createValueBinding("#{contact.firstName}");
    		firstName.setValueBinding("value", binding);
    		Class[] ValidatorsArgs={FacesContext.class,UIComponent.class,Object.class};
    		MethodBinding method=FacesContext.getCurrentInstance()
    		.getApplication().createMethodBinding("#{contactFormGUI.validateFirstName}",ValidatorsArgs);
    		firstName.setValidator(method);
    		//firstName.setRequired(true);
    		panelGridRoot.getChildren().add(firstName);
     
     
    		message = new HtmlMessage();
    		message.setId("message_prenom");
    		message.setFor("input_prenom");
    		message.setTitle("erreur");
    		panelGridRoot.getChildren().add(message);
    Je voudrais que mon validator soit appelé meme si le champ est vide, pour faire une message "ce champ est requis"; si je declare pas required="true", le message est celui de JSF qui est moche: Erreur de validation: Valeur requise.
    Comment je fais pour avoir mon message perso à afficher ?

    Merci

  2. #2
    Membre expérimenté Avatar de a.snaps
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    209
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 209
    Par défaut
    Dans jsf-impl.jar tu trouveras un message.properties avec les messages
    Pour utiliser les tiens utilise les clés à modifier et, dans faces-config.xml:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <application>
       <locale-config>
          <default-locale>fr</default-locale>
       </locale-config>
       <message-bundle>
          package.vers.ton.fichier.properties
       </message-bundle>
    </application>
    Alex

  3. #3
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Juillet 2002
    Messages
    705
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 705
    Par défaut
    super merci

  4. #4
    Invité de passage
    Inscrit en
    Février 2007
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 1
    Par défaut
    J'ai moi meme un probleme de ce type avec les validators. En fait j'ai une page web dans laquelle je vais ajouter dynamiquement des objets de type Calendar, TextField, DropDown list,...
    Je souhaite ajouter sur les champs "date" et "textField" notamment un controle (pas de '%' par exemple car il y a une requete sql par la suite)

    voici mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    TextField theTextField = new TextField();
    theTextField.setId("textFieldSearch-" + searchElem.getAttributeValue("key"));
    theTextField.setStyle("left: " + searchElem.getAttributeValue("left2") + "px; top: "+ searchElem.getAttributeValue("top") + "px; width: "+ searchElem.getAttributeValue("size") + "px; position: absolute");
    theTextField.setStyleClass("staticTextStandard");
     
    Class[] ValidatorsArgs={FacesContext.class,UIComponent.class,Object.class};
    MethodBinding method=FacesContext.getCurrentInstance().getApplication().createMethodBinding("#{wbp$WbpDocumentTypePage.textField_validate}",ValidatorsArgs);
    theTextField.setValidator(method);
     
     
    componentList.add(theTextField);
    Pour info, getAttributeValue() permet de récuperer des infos d'un fichier .xml

    J'ai aussi créé la methode textField_validate qui met un booleen "textValueValid" à true ou false selon le resultat du controle, puis ce booleen est consulté lorsque je clique sur le bouton "Search" de ma page (via searchBtn_action() )

    Si quelqu'un voit quel est le pb, ou bien a déjà fait quelque chose dans le genre ??

    Merci.

    UPDATE : EN FAIT CE QUE JE FAIS CA MARCHE, le probleme venait d'ailleurs..

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 14/08/2008, 11h00
  2. balise <message> des validators
    Par piotrr dans le forum Struts 2
    Réponses: 13
    Dernier message: 24/04/2008, 14h54
  3. Récupérer le résultat des validators en javascript
    Par lutecefalco dans le forum ASP.NET
    Réponses: 1
    Dernier message: 20/07/2007, 12h16
  4. Chemin des validators
    Par mermich dans le forum JSF
    Réponses: 2
    Dernier message: 12/03/2007, 09h06
  5. Réponses: 3
    Dernier message: 11/08/2006, 10h08

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo