Bonjour,
Je viens vers vous pour faire appel à votre expérience et vos connaissances. Je travaille avec RichFace 3.3.3 Final, JSF 1.2, JBoss 4.2,et Java 5
Voici mon problème: J'ai un formulaire qui contient plusieurs champs. L'un d'entre eux est un rich:orderingList. Mon besoin est de limiter le nombre d'élements sélectionnés par l'utilisateur ou afficher un message d'erreur lorsque l'utilisateur sélectionné plus de 15 éléments! J'ai donc créer un validator.

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
	public void validateTechnicalSkill(FacesContext context, UIComponent component,
			Object value) throws ValidatorException {
 
		if (component instanceof HtmlOrderingList) {
 
			Object o = ((HtmlOrderingList)component).getSubmittedValue();
 
			if (o instanceof UIOrderingList) {
				int size = ((UIOrderingList)o).getSelection().size();
				// User cannot selects more than 15 element
				if (size > 15) {
					throw new ValidatorException(new FacesMessage(
						FacesMessage.SEVERITY_ERROR, "Limite dépassée",
						"Le nombre de compétences dépasse la limite de 15"));
				}
			}
		}
	}
Je rentre bien dans le validator mais le problème est que je ne peux pas récupérer la liste sélectionnée par l'utilisateur.
La méthode SubmittedValue(); retourne un type "Object" qui est de type UIOrderingList$SubmittedValue (je le vois en mode debug) hors je ne peux rien faire avec...

En effet étant dans la phase de validation le modèle n'est pas mis à jour et je ne peux donc récupérer ma sélection avec .getSelection(), l'argument Object value contient la liste des éléments présentés à l'utilisateur (chose qui n'est pas liée à la phase de validation mais je savais pas où le mettre)...

Dans le code du validateur mon Object o n'est pas de type UIOrderingList et je ne peux avoir accès au type UIOrderingList$SubmittedValue qui n'est pas reconnu!

Ma question est comment puis je résoudre mon problème?? Je suis ouvert à une autre approche du problème (genre option que je n'aurais pas vu dans le rich:orderinglist, ne pas utiliser de validator...)

Merci par avance pour votre lecture et votre aide