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

Servlets/JSP Java Discussion :

Failed to convert property value of type java.lang.String to required type com.laplace.mvc.model.Role for prop


Sujet :

Servlets/JSP Java

  1. #1
    Membre régulier
    Inscrit en
    Mai 2003
    Messages
    350
    Détails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 350
    Points : 84
    Points
    84
    Par défaut Failed to convert property value of type java.lang.String to required type com.laplace.mvc.model.Role for prop
    bonjour messieurs,
    J'ai une classe User et une autre Role.
    Code Java : 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
    @Table(name = "USERS")
    public class User { 
      private Role role;
    public Role getRole() {
    	return role;
    }
     
    public void setRole(Role role) {
    	this.role = role;
    }
     
    public class Role {
    	@Id
    	@Column(name = "ID")
    	private Integer id;
     
    	@Column(name = "NAME")
    	private String name;
     
    	public Role() {
    		//menus.size(); from Menu Where menu = null
    	}

    dans la page jsp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <spring:bind path="role">
    			<div class="form-group ${status.error ? 'has-error' : ''}">
    				<label class="col-sm-2 control-label">Role :</label>
    				<div class="col-sm-10">
    					<form:select path="role" class="form-control">
    						<form:option value="NONE" label="--- Select ---" />
    						<form:options items="${rolesList}" />						
    					</form:select>
    					<form:errors path="role" class="control-label" />					
    				</div>
    			</div>
    		</spring:bind>
    et quand je veux faire submit dans la page jsp j'ai
    Failed to convert property value of type java.lang.String to required type com.laplace.mvc.model.Role for property role; nested exception is java.lang.IllegalStateException: Cannot convert value of type java.lang.String to required type com.laplace.mvc.model.Role for property role: no matching editors or conversion strategy found

  2. #2
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 310
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 310
    Points : 9 522
    Points
    9 522
    Billets dans le blog
    1
    Par défaut
    Je ne connais pas Spring mais bon, le problème est récurrent...

    En JSF, quand on veut utiliser un objet dans la liste des valeurs d'un "select", il faut passer par un Converter.
    J'imagine que tu as l'équivalent avec Spring mais comme dit, je ne connais pas, à toi de chercher.

    Ce qu'il faut comprendre, c'est que du côté de ton client (navigateur), c'est du code html qui arrive, le protocole html ne permet pas de faire passer des objets mais que des chaînes de caractères.
    Il faut donc, côté serveur, récupérer l'objet qui correspond à la clé passée par ton champ de saisie (qui est récupéré par un request.getParameter("leNom")), c'est le rôle du Converter.

    Bref, tu as une piste
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Bonjour,

    Si tu as des getter sur les attributs name et id (getName(), getId()):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <form:options items="${rolesList}" itemLabel="name" itemValue="id"/>
    A+.

Discussions similaires

  1. Réponses: 0
    Dernier message: 13/03/2016, 00h20
  2. Réponses: 0
    Dernier message: 12/08/2015, 02h31
  3. Réponses: 1
    Dernier message: 10/05/2015, 02h29
  4. Réponses: 5
    Dernier message: 01/05/2012, 13h25
  5. Réponses: 7
    Dernier message: 26/10/2010, 18h31

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