...
Validation des formulaires
Validation au niveau des JSP
Utilisation des validateurs prédéfinis
Il existe des validateurs par défaut dans JSF (validateLength, validateLongRange et validateDoubleRange), par exemple :
...
| exercice |
|---|
| Utiliser un validateur prédéfini |
|---|
| Utiliser un validateur prédéfini |
|---|
|
Ajouter un validateur prédéfini à la boite de saisie et supprimer le code correspondant de la méthode callback() (utiliser le validateur validateLength) | solution |
|---|
1. Modification de la méthode callback : | Bloc de code |
|---|
/**
* JSF callback.
* @return A String.
*/
public String callback() {
return "gotoWelcome";
}
|
2. Modification de test1.jsp : | Bloc de code |
|---|
<%@include file="_include.jsp"%>
<%@include file="_navigation.jsp"%>
<h:form>
<h:messages/>
<h:inputText value="#{test1Controller.myInput}" required="true">
<f:validateLength minimum="3"/>
</h:inputText>
<h:commandButton value="Move"
action="#{test1Controller.callback}"/>
</h:form>
|
|
|
Il est aussi possible d'écrire ses propres validateurs. Leur mise en œuvre est relativement simple, par exemple :
...
| exercice |
|---|
| Écrire un validateur |
|---|
| Écrire un validateur |
|---|
|
Ajouter un validateur personnalisé validateMyInput() à la boite de saisie qui se charge de lancer une exception à la place de la méthode callback(). | solution |
|---|
1. Ajout dans Test1Controller: | Bloc de code |
|---|
/**
* @param context
* @param componentToValidate
* @param value
* @throws ValidatorException
*/
public void validateMyInput(FacesContext context,
UIComponent componentToValidate,
Object value) throws ValidatorException {
String strValue = (String) value;
if (strValue.length() < 2) {
throw new ValidatorException(getFacesErrorMessage("TEST1.MESSAGE.SHORT"));
}
}
|
2. Modification test1.jsp : | Bloc de code |
|---|
<%@include file="_include.jsp"%>
<%@include file="_navigation.jsp"%>
<h:form>
<h:messages/>
<h:inputText value="#{test1Controller.myInput}" required="true"
validator="#{test1Controller.validateMyInput}"/>
<h:commandButton value="Move"
action="#{test1Controller.callback}"/>
</h:form>
|
|
|
Validation au niveau des beans (JSR 303)
http://musingsofaprogrammingaddict.blogspot.com/2009/01/getting-started-with-jsr-303-beans.html
Mise à jour de propriétés par les formulaires (updateActionlistener)
...