Q: Que se passe-t-il si le client fait une mauvaise saisie ? R1 : On laisse le Bean qui traite ces erreurs. Remarque : ca devient très lourd, le Bean doit gérer à la fois les règles métiers et la gestions des erreurs. R2: Il est souhaitable de séparer les deux aspects.
12/12/11 JSF – Introduction 2
JSF fournit un mécanisme standard de conversion et de validation pour traiter les saisies et assurer les intégrités des données. La conversion et la validation permettent aux développeurs de se concentrer sur la logique métier au lieu de passer du temps à vérifier si la date s’écrit DD/MM/YY, … La conversion que les informations sont du bon type. Ex: String java.util.Date. La val. Garantit que les données contiennent ce qui est attendu. Ex : valeur entre A et B. 12/12/11 JSF – Introduction 3 Avant de mettre à jour le modèle du Bean géré, ces données textuelles doivent être converties dans les objets cibles. L’opération inverse : les données seront renvoyées au client dans la réponse pour être affichées par le navigateur. JSF convertira automatiquement la valeur du composant d’interface dans le type (standard : Integer, Date …) adéquat et inversement. Autre Type, Création de notre propre Converter. 12/12/11 JSF – Introduction 4 Convertisseur Description BigDecimalConverter String <-> java.math.BigDecimal BigIntegerConverter String <-> java.math.BigInteger TYPEConverter (en generale ) String <-> TYPE DateTimeConverter String <-> java.util.Date EnumConverter Convertit un String en Enum
12/12/11 JSF – Introduction 5
Attributs type Valeur Type String number (par défaut) pour des réels, currency pour les monétaires et percent pour poucentage pattern String java.text.DecimalFormat ( un motif présentation). "#,##0.00 F". maxFractionDigits int Impose une valeur limite sur le nombre de chiffres décimaux à représenter. minFractionDigits Int Si le nombre ne possède pas de valeurs décimales, les 0 sont proposés. maxIntegerDigits int Impose une valeur limite sur le nombre de chiffres sur la partie entière de la valeur réelle à représenter. minIntegerDigits int Impose un nombre de chiffres sur la partie entière à représenter. IntegerOnly Boolean groupingUsed Boolean Prendre en compte ou pas la séparation des milliers locale util.Locale Choix du paramètre régional à utiliser. currencyCode 12/12/11 String La JSF monnaie à prendre en compte comme "EUR" 6 – Introduction
currencySymbol String Une autre monnaie non prévue par le standard
Attributs type Valeur Type String date (par défaut) pour prendre en compte la date uniquement, time pour prendre en compte l'heure uniquement, ou both pour prendre en compte à la fois la date et l'heure. pattern String java.text.SimpleDateFormat ( un motif présentation). dataStyle String default, short, medium, long ou full. Affiche la date avec plus ou moins de renseignements. timeStyle String default, short, medium, long ou full. Affiche l’heure avec plus ou moins de renseignements. locale Util.Locale Choix du paramètre régional à utiliser. timeZone String Tient compte du fuseau horaire.
12/12/11 JSF – Introduction 7
12/12/11 JSF – Introduction 8
Parfois, on a besoin d’une conversion adaptée à la situation au delà de number et date. pour cela, Ecrire une classe qui implémente l’interface javax.faces.convert.Converter Possède deux méthodes : 1. Object getAsObject(FacesContext ctx, UIComponent component, String value) 2. String getAsString(FacesContext ctx, UIComponent component, Object value)
12/12/11 JSF – Introduction 9
@FacesConverter(value = "euroConverter") public class EuroConverter implements Converter {
public Object getAsObject(FacesContext ctx, UIComponent
<h:outputText value="#{book.price}"/> <h:outputText value="#{book.price}"> <f:converter converterId="euroConverter"/> </h:outputText> Ou par exemple <h:outputText value="#{book.price}" converter="euroConverter"/>
12/12/11 JSF – Introduction 10
Les apps web doivent garantir que les données saisies sont valides. Cette vérification peut avoir lieu côté client avec JS ou côté serveur avec des validateurs. Les validateurs agissent comme des contrôles de premier niveau en validant les valeurs avant qu’elles ne soient traitées par le Bean géré. Ex : vérifier qu’une valeur est obligatoire
12/12/11 JSF – Introduction 11
Convertisseur Attribut Description DoubleRangeValidator minimum Compare la valeur du composant aux valeurs maximum minimales et maximales indiquées. LengthValidator minimum, Teste le nombre de caractères de la valeur maximum textuelle du composant. LongRangeValidator minimum, Compare la valeur du composant aux valeurs maximum minimales et maximales indiquées RegexValidator pattern Compare la valeur du composant à une expression régulière.
Sion veut valider un code postal ou une adresse de courrier électronique. Dans ce cas, vous devrez créer votre propre validateur. un validateur est une classe qui doit implémenter javax.faces.validator.Validator Possède : 1. void validate(FacesContext context, UIComponent component, Object value)
12/12/11 JSF – Introduction 14
@FacesValidator(value = "isbnValidator") public class IsbnValidator implements Validator { private Pattern pattern; private Matcher matcher; public void validate(FacesContext context,UIComponent component,Object value) throws ValidatorException { String componentValue = value.toString(); pattern = Pattern.compile("(?=[-0-9xX]{13}$)"); matcher = pattern.matcher(componentValue); if (!matcher.find()) { String message = MessageFormat.format("{0} is not a valid isbn format",componentValue); FacesMessage facesMessage =new FacesMessage(SEVERITY_ERROR, message, message); throw new ValidatorException(facesMessage); } }}
Secrets du Marketing des Médias Sociaux 2021: Conseils et Stratégies Extrêmement Efficaces votre Facebook (Stimulez votre Engagement et Gagnez des Clients Fidèles)
Apprendre Python rapidement: Le guide du débutant pour apprendre tout ce que vous devez savoir sur Python, même si vous êtes nouveau dans la programmation
L'analyse technique facile à apprendre: Comment construire et interpréter des graphiques d'analyse technique pour améliorer votre activité de trading en ligne.
Dans l'esprit des grand investisseurs: Un voyage à la découverte de la psychologie utilisée par les plus grands investisseurs de tous les temps à travers des analyses opérationnell
L'analyse fondamentale facile à apprendre: Le guide d'introduction aux techniques et stratégies d'analyse fondamentale pour anticiper les événements qui font bouger les marchés
Forex Trading facile à apprendre: Le guide d'introduction au marché des changes et aux stratégies de négociation les plus efficaces dans l'industrie des devises.