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

Spring Web Java Discussion :

Eclaircissement sur quelque propriété


Sujet :

Spring Web Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mars 2009
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 93
    Par défaut Eclaircissement sur quelque propriété
    Bonsoir tout le monde. je débute dans le monde de spring en suivant un tutoriel avec netbeans et je suis tombé sur quelque propriété que je n'ai pas compris. Voici un extrait du dispatcherServlet:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
        <bean name="/priceincrease.htm" class="springapp.web.PriceIncreaseFormController">
            <property name="sessionForm" value="true"/>
            <property name="commandName" value="priceIncrease"/>
            <property name="commandClass" value="springapp.service.PriceIncrease"/>
            <property name="validator">
                <bean class="springapp.service.PriceIncreaseValidator"/>
            </property>
            <property name="formView" value="priceincrease"/>
            <property name="successView" value="hello.htm"/>
            <property name="productManager" ref="productManager"/>
        </bean>
    les propriétés que j'ai pas compris sont:commandName,commandClass.
    Sa c'est la partie 1 de ma question.
    une fois l'url priceincrease.htm entrée dans le navigateur je suis renvoyé vers la form priceincrease(la propriété formView) voici son 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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
     
    <%@ include file="/WEB-INF/jsp/include.jsp" %>
    <%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
     
    <html>
    <head>
      <title><fmt:message key="title"/></title>
      <style>
        .error { color: red; }
      </style>  
    </head>
    <body>
    <h1><fmt:message key="priceincrease.heading"/></h1>
    <form:form method="post" commandName="priceIncrease">
      <table width="95%" bgcolor="f8f8ff" border="0" cellspacing="0" cellpadding="5">
        <tr>
          <td align="right" width="20%">Increase (%):</td>
            <td width="20%">
              <form:input path="percentage"/>
            </td>
            <td width="60%">
              <form:errors path="percentage" cssClass="error"/>
            </td>
        </tr>
      </table>
      <br>
      <input type="submit" align="center" value="Execute">
    </form:form>
    <a href="<c:url value="hello.htm"/>">Home</a>
    </body>
    </html>
    la aussi j'ai pas compris la propriété path de <form:errors> ou <form:input> et aussi la propriété commandName.
    Et pour finir il y a ce validateur qui est appelé si tout se passe bien:
    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
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
     
    package springapp.service;
     
    import org.springframework.validation.Validator;
    import org.springframework.validation.Errors;
     
    import org.apache.commons.logging.Log;
    import org.apache.commons.logging.LogFactory;
     
    public class PriceIncreaseValidator implements Validator {
        private int DEFAULT_MIN_PERCENTAGE = 0;
        private int DEFAULT_MAX_PERCENTAGE = 50;
        private int minPercentage = DEFAULT_MIN_PERCENTAGE;
        private int maxPercentage = DEFAULT_MAX_PERCENTAGE;
     
        /** Logger for this class and subclasses */
        protected final Log logger = LogFactory.getLog(getClass());
     
        public boolean supports(Class clazz) {
            return PriceIncrease.class.equals(clazz);
        }
     
        public void validate(Object obj, Errors errors) {
            PriceIncrease pi = (PriceIncrease) obj;
            if (pi == null) {
                errors.rejectValue("percentage", "error.not-specified", null, "Value required.");
            }
            else {
                logger.info("Validating with " + pi + ": " + pi.getPercentage());
                if (pi.getPercentage() > maxPercentage) {
                    errors.rejectValue("percentage", "error.too-high",
                        new Object[] {new Integer(maxPercentage)}, "Value too high.");
                }
                if (pi.getPercentage() <= minPercentage) {
                    errors.rejectValue("percentage", "error.too-low",
                        new Object[] {new Integer(minPercentage)}, "Value too low.");
                }
            }
        }
     
        public void setMinPercentage(int i) {
            minPercentage = i;
        }
     
        public int getMinPercentage() {
            return minPercentage;
        }
     
        public void setMaxPercentage(int i) {
            maxPercentage = i;
        }
     
        public int getMaxPercentage() {
            return maxPercentage;
        }
     
    }
    Là aussi j'ai pas compris le principe de errors.rejectValue .
    Merci d'avance pour vos réponses.

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    95
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 95
    Par défaut
    Je n'ai pas ton tutoriel, mais je pense avoir deviné comment il fonctionne.

    Le CommandName et CommandClass correspondent au bean qui est utilisé pour la correspondance avec les champs du formulaire. Autrement dit, les champs du formulaire définissent directement les propriétés de ton bean. Tu n'as donc pas besoin de t'occuper de récupérer les paramètres du formulaire, la liaison est automatique.

    Tu retrouves ce commandName dans le formulaire de la JSTL. Les form:input définissent les balises html input, en la liant à une propriété du commandName. Les form:error permettent d'afficher les erreurs éventuelles sur une propriété.

    Le Validator, c'est justement la classe de contrôle des données du formulaire. Si une valeur est incorrecte, elle est rejetée (rejectValue), et l'erreur est associée à un champ du formulaire, qui sera affiché avec le form:error correspondant.

    S'il y a une erreur, le formulaire est à nouveau affiché avec la dernière saisie et avec les erreurs. Si tout est ok, tu récupères ton bean définit par commandName, où toutes les propriétés sont déjà définies et correctes.

  3. #3
    Membre confirmé
    Inscrit en
    Mars 2009
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 93
    Par défaut
    Merci plopinou pour tes éclaircissements.

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

Discussions similaires

  1. Quelques eclaircissement sur Java
    Par sovo dans le forum Général Java
    Réponses: 2
    Dernier message: 02/01/2008, 10h56
  2. [Versioning]Quels eclaircissements sur Dll/GAC/References?
    Par chnew dans le forum Framework .NET
    Réponses: 4
    Dernier message: 22/03/2006, 18h11
  3. [RegEx] Eclaircissement sur un formulaire
    Par inferno66667 dans le forum Langage
    Réponses: 11
    Dernier message: 03/12/2005, 17h55
  4. Réponses: 10
    Dernier message: 03/10/2005, 15h42
  5. [VB.NET] Eclaircissement sur la fonction IsDBNull
    Par shinchan dans le forum Windows Forms
    Réponses: 9
    Dernier message: 04/01/2005, 09h59

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