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 :

[Spring MVC] Exception Validator


Sujet :

Spring Web Java

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    163
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Avril 2005
    Messages : 163
    Points : 86
    Points
    86
    Par défaut [Spring MVC] Exception Validator
    Salut ,
    j'ai l'exception suivante, elle est lance quand je veux enregistrer ou modifier des champs de ma BD

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Validator class istia.st.springmvc.personnes.web.ValidatePersonne does not support class istia.st.springmvc.personnes.hibernate.Personnes
    La classe ValidatePersonne
    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
    package istia.st.springmvc.personnes.web;
     
    import istia.st.springmvc.personnes.entites.Personne;
     
    import org.springframework.validation.Errors;
     
    public class ValidatePersonne implements
    		org.springframework.validation.Validator {
     
    	public boolean supports(Class classe) {
    		return classe.isAssignableFrom(Personne.class);
    	}
     
    	public void validate(Object obj, Errors erreurs) {
    		// on récupère la personne postée
    		Personne personne = (Personne) obj;
    		// on vérifie le prénom
    		String prénom = personne.getPrenom();
    		if (prénom==null || prénom.trim().length() == 0) {
    			erreurs.rejectValue("prenom", "personne.prenom.necessaire",
    					"Le prénom est nécessaire !");
    		}
    		// on vérifie le nom
    		String nom = personne.getNom();
    		if (nom==null || nom.trim().length() == 0) {
    			erreurs.rejectValue("nom", "personne.nom.necessaire",
    					"Le nom est nécessaire !");
    		}
    		// on vérifie le nombre d'enfants
    		int nbEnfants = personne.getNbEnfants();
    		if (nbEnfants < 0) {
    			erreurs.rejectValue("nbEnfants", "personne.nbEnfants.invalide",
    					"Donnée incorrecte !");
    		}
    	}
     
    }
    et la classe Personnes est
    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
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    package istia.st.springmvc.personnes.hibernate;
     
    import java.io.Serializable;
    import java.util.Date;
    import org.apache.commons.lang.builder.ToStringBuilder;
     
     
    /** @author Hibernate CodeGenerator */
    public class Personnes implements Serializable {
     
        /** identifier field */
        private Integer Id;
     
        /** nullable persistent field */
        private Integer Version;
     
        /** nullable persistent field */
        private Date Datenaissance;
     
        /** nullable persistent field */
        private String Nom;
     
        /** nullable persistent field */
        private String Prenom;
     
        /** nullable persistent field */
        private Integer Nbenfants;
     
        /** nullable persistent field */
        private Integer Marie;
     
        /** full constructor */
        public Personnes(Integer Version, Date Datenaissance, String Nom, String Prenom, Integer Nbenfants, Integer Marie) {
            this.Version = Version;
            this.Datenaissance = Datenaissance;
            this.Nom = Nom;
            this.Prenom = Prenom;
            this.Nbenfants = Nbenfants;
            this.Marie = Marie;
        }
     
        /** default constructor */
        public Personnes() {
        }
     
        public Integer getId() {
            return this.Id;
        }
     
        public void setId(Integer Id) {
            this.Id = Id;
        }
     
        public Integer getVersion() {
            return this.Version;
        }
     
        public void setVersion(Integer Version) {
            this.Version = Version;
        }
     
        public Date getDatenaissance() {
            return this.Datenaissance;
        }
     
        public void setDatenaissance(Date Datenaissance) {
            this.Datenaissance = Datenaissance;
        }
     
        public String getNom() {
            return this.Nom;
        }
     
        public void setNom(String Nom) {
            this.Nom = Nom;
        }
     
        public String getPrenom() {
            return this.Prenom;
        }
     
        public void setPrenom(String Prenom) {
            this.Prenom = Prenom;
        }
     
        public Integer getNbenfants() {
            return this.Nbenfants;
        }
     
        public void setNbenfants(Integer Nbenfants) {
            this.Nbenfants = Nbenfants;
        }
     
        public Integer getMarie() {
            return this.Marie;
        }
     
        public void setMarie(Integer Marie) {
            this.Marie = Marie;
        }
     
        public String toString() {
            return new ToStringBuilder(this)
                .append("Id", getId())
                .toString();
        }
     
    }
    merci de votre aide

  2. #2
    Membre chevronné
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 348
    Points : 1 787
    Points
    1 787
    Par défaut
    Il y a confusion entre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    istia.st.springmvc.personnes.hibernate.Personnes
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    istia.st.springmvc.personnes.entites.Personne
    non ?

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    163
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Avril 2005
    Messages : 163
    Points : 86
    Points
    86
    Par défaut
    effectivement ca veint de ça , je viens de trouver l'erreur ,au faite il faut mettre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    public boolean supports(Class classe) {
    		return classe.isAssignableFrom(Personnes.class);
    	}
    et non plus
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    public boolean supports(Class classe) {
    		return classe.isAssignableFrom(Personne.class);
    	}
    car Personne c'est une classe que j'ai oublié de supprimer
    merci chtig

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    163
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Avril 2005
    Messages : 163
    Points : 86
    Points
    86
    Par défaut
    ah comme j'y suis j'ai un autre probleme, apres avoir corrigé ça, si j'essaye d'envoyer les donnée il y a rien qui se passe
    voila ma jsp qui enregistre ou modifie
    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
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    <%@ page language="java" pageEncoding="ISO-8859-1" contentType="text/html;charset=ISO-8859-1"%>
    <%@ taglib uri="/WEB-INF/c.tld" prefix="c" %>
    <%@ taglib uri="/WEB-INF/spring.tld" prefix="spring" %>
    <%@ page isELIgnored="false" %>
     
    <html>
    	<head>
    		<title>Spring-mvc : Personnes</title>
    	</head>
    	<body background="../ressources/standard.jpg">
    		<h2>Ajout/Modification d'une personne</h2>
    		<spring:bind path="personne">
    			<c:if test="${status.error}">
    				<h3>Les erreurs suivantes se sont produites :</h3>
    				<ul>
    					<c:forEach items="${status.errorMessages}" var="erreur">
    						<li><c:out value="${erreur}"/></li>
    					</c:forEach>
    				</ul>
    				<hr>
    			</c:if>
    		</spring:bind>
    		<form method="post" action="<c:url value="/edit.html"/>">
    			<table border="1">
    				<tr>
    					<td>Id</td>
    					<td>${personne.id}</td>
    				</tr>
    				<tr>
    					<td>Version</td>
    						<spring:bind path="personne.version">
    						<td>
    							<input type="text" value="${status.value}" name="${status.expression}" size="20">
    						</td>
    						<td>${status.errorMessage}</td>
    						</spring:bind>
    				</tr>
    				<tr>
    					<td>Pr&eacute;nom</td>
    					<spring:bind path="personne.prenom">
    						<td>
    							<input type="text" value="${status.value}" name="${status.expression}" size="20">
    						</td>
    						<td>${status.errorMessage}</td>
    					</spring:bind>
    				</tr>
    				<tr>
    					<td>Nom</td>
    					<spring:bind path="personne.nom">
    						<td>
    							<input type="text" value="${status.value}" name="${status.expression}" size="20">
    						</td>
    						<td>${status.errorMessage}</td>
    					</spring:bind>
    				</tr>
    				<tr>
    					<td>Date de naissance (JJ/MM/AAAA)</td>
    					<spring:bind path="personne.datenaissance">
    						<td>
    							<input type="text" value="${status.value}" name="${status.expression}">
    						</td>
    						<td>${status.errorMessage}</td>
    					</spring:bind>
    				</tr>
    				<tr>
    					<td>Mari&eacute;</td>
    					<td>
    						<c:choose>
    							<c:when test="${personne.marie==1}">
    								 <input type="radio" name="marie" value="true" checked>Oui
    								 <input type="radio" name="marie" value="false">Non
    							</c:when>
    							<c:when test="${personne.marie==0}">
    								 <input type="radio" name="marie" value="true">Oui
    								 <input type="radio" name="marie" value="false" checked>Non
    							</c:when>						
    						<c:otherwise>
    								<input type="radio" name="marie" value="true">Oui
    								<input type="radio" name="marie" value="false" checked>Non
    						</c:otherwise>
    						</c:choose>
     
    					</td>
    				</tr>
    				<tr>
    					<td>Nombre d'enfants</td>
    					<spring:bind path="personne.nbenfants">
    						<td>
    							<input type="text" value="${status.value}" name="${status.expression}">
    						</td>
    						<td>${status.errorMessage}</td>
    					</spring:bind>
    				</tr>
    			</table>
    			<br>
    			<input type="hidden" value="${personne.id}" name="id">
    			<input type="submit" value="Valider">
    			<a href="<c:url value="/list.html"/>">Annuler</a>
    		</form>
    	</body>
    </html>
    et ma classe DAO qui fait les appels a hibernate est la suivante
    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
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    package istia.st.springmvc.personnes.dao;
     
    //import istia.st.springmvc.personnes.entites.Personne;
    import istia.st.springmvc.personnes.hibernate.HibernateUtil;
    import istia.st.springmvc.personnes.hibernate.Personnes;
    import istia.st.springmvc.personnes.utils.SpringUtils;
     
    import org.springframework.orm.hibernate3.HibernateObjectRetrievalFailureException;
     
    import org.hibernate.HibernateException;
    import org.hibernate.Session;
    import org.hibernate.SessionFactory;
    import org.hibernate.cfg.Configuration;
     
    import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
    //import org.springframework.orm.ibatis.support.SqlMapClientDaoSupport;
     
    import java.util.Collection;
    import java.util.Iterator;
    import java.util.List;
     
     
    public class DaoImplCommon extends HibernateDaoSupport implements
    		IDao {
    	    // configuration: parametres + mapping
    	    public Configuration config = null;
     
    	    // Usine à fabriquer des sessions
    	    public SessionFactory factory = null;
     
    	// liste des personnes
    	public List getAll() {  
     
            return getHibernateTemplate().find(
            		"from Personnes ");
    	}
     
    	// obtenir une personne en particulier
    	public Personnes getOne(int id) {
     
    		// on la récupère dans la BD
     
    		try
    		{
    		    if ((Integer)id != null)
    		    {
    			List r = getHibernateTemplate().find(
    				"from Personnes where id = "+id);
    			if (r.size() == 0)
    			{
    			    return null;
    			}
    			else
    			{
    			    return (Personnes) r.get(0);
    			}
    		    }
     
    		    return null;
    		}
    		catch (HibernateObjectRetrievalFailureException e)
    		{
    		    return null;
    		}
    	}
     
    	// suppression d'une personne
    	public void deleteOne(int id) {
    		// on supprime la personne
    		/*int n = getSqlMapClientTemplate().delete("Personne.deleteOne",
    				new Integer(id));
    		// a-t-on réussi
    		if (n == 0) {
    			throw new DaoException("Personne d'id [" + id + "] inconnue", 2);
    		}*/
    	}
     
    	// ajouter ou modifier une personne
    	public void saveOne(Personnes personne) {
    		// le paramètre personne est-il valide ?
    		check(personne);
    		// ajout ou modification ?
    		if (personne.getId() == -1) {
    			// ajout
    			insertPersonne(personne);
    		} else {
    			updatePersonne(personne);
    		}
    	}
     
    	// ajouter une personne
    	protected void insertPersonne(Personnes personne) {
    		// 1ère version
    		personne.setVersion(1);
    		getHibernateTemplate().save(personne);
    	}
     
    	// modifier une personne
    	protected void updatePersonne(Personnes personne) {
    		// on attend 10 ms - pour les tests mettre true au lieu de false
    		getHibernateTemplate().update(personne);
    	}
     
    	// vérification validité d'une personne
    	private void check(Personnes p) {
    		// personne p
    		if (p == null) {
    			throw new DaoException("Personne null", 10);
    		}
    		// id
    		if (p.getId() != -1 && p.getId() < 0) {
    			throw new DaoException("Id [" + p.getId() + "] invalide", 11);
    		}
    		// date de naissance
    		if (p.getDatenaissance() == null) {
    			throw new DaoException("Date de naissance manquante", 12);
    		}
    		// nombre d'enfants
    		if (p.getNbenfants() < 0) {
    			throw new DaoException("Nombre d'enfants [" + p.getNbenfants()
    					+ "] invalide", 13);
    		}
    		// nom
    		if (p.getNom() == null || p.getNom().trim().length() == 0) {
    			throw new DaoException("Nom manquant", 14);
    		}
    		// prénom
    		if (p.getPrenom() == null || p.getPrenom().trim().length() == 0) {
    			throw new DaoException("Prénom manquant", 15);
    		}
    	}
     
    	// attente
    	private void wait(int N) {
    		// on attend N ms
    		try {
    			Thread.sleep(N);
    		} catch (InterruptedException e) {
    			// on affiche la trace de l'exception
    			e.printStackTrace();
    			return;
    		}
    	}
     
    }
    est ce que t'aurais une idee du probleme que j'ai ?
    merci

  5. #5
    Membre chevronné
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 348
    Points : 1 787
    Points
    1 787
    Par défaut
    Désolé moi je ne vais pas pouvoir te répondre : je n'ai jamais fait de Spring + Hibernate ...

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    163
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Avril 2005
    Messages : 163
    Points : 86
    Points
    86
    Par défaut
    ok merci bien

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

Discussions similaires

  1. [SPRING MVC]Erreur sur un Integer dans un Validator
    Par manuzinho dans le forum Spring Web
    Réponses: 2
    Dernier message: 31/08/2007, 15h58
  2. [Spring MVC] validation.xml coté client
    Par Tail dans le forum Spring Web
    Réponses: 1
    Dernier message: 28/10/2006, 17h46
  3. [Spring MVC] recuperer le ServletContext dans un Validator
    Par manuzinho dans le forum Spring Web
    Réponses: 1
    Dernier message: 07/08/2006, 14h09
  4. Réponses: 2
    Dernier message: 16/02/2006, 10h29
  5. [Spring MVC][Validator] Ne stop pas si il y a une erreurs
    Par Hikage dans le forum Spring Web
    Réponses: 3
    Dernier message: 15/02/2006, 09h43

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