salut tout le monde
j'ai essayé de créer une validation 'Validator' avec un champ mais j'ai message d'erreur
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[localhost].[/test].[Faces Servlet]] "Servlet.service()" pour la servlet Faces Servlet a généré une exception: java.lang.ClassCastException: mus.test cannot be cast to javax.faces.validator.Validator
j'utilise jsf 2.0 et eclipse
je vous montre le code
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
 <validator>
  <validator-id>com.mkyong.EmailValidator</validator-id>
  <validator-class>mus.test</validator-class>
 </validator>
et la classe
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
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
 
package mus;
 
import java.util.regex.Matcher;
import java.util.regex.Pattern;
 
import javax.faces.application.FacesMessage;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.validator.FacesValidator;
import javax.faces.validator.Validator;
import javax.faces.validator.ValidatorException;
 
@FacesValidator("com.mkyong.EmailValidator")
public class EmailValidator implements Validator{
 
	private static final String EMAIL_PATTERN = "^[_A-Za-z0-9-]+(\\." +
			"[_A-Za-z0-9-]+)*@[A-Za-z0-9]+(\\.[A-Za-z0-9]+)*" +
			"(\\.[A-Za-z]{2,})$";
 
	private Pattern pattern;
	private Matcher matcher;
 
	public EmailValidator(){
		  pattern = Pattern.compile(EMAIL_PATTERN);
	}
 
	@Override
	public void validate(FacesContext context, UIComponent component,
			Object value) throws ValidatorException {
 
		matcher = pattern.matcher(value.toString());
		if(!matcher.matches()){
 
			FacesMessage msg = 
				new FacesMessage("E-mail validation failed.", 
						"Invalid E-mail format.");
			msg.setSeverity(FacesMessage.SEVERITY_ERROR);
			throw new ValidatorException(msg);
 
		}
 
	}
}
et champ
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
<h:inputText id="email" value="#{user.email}" 
			size="20" required="true" label="Email Address">
 
			<f:validator validatorId="com.mkyong.EmailValidator" />
 
		  </h:inputText>
merci d'avance