spring mvc forme:balise select

J'ai un Modèle qui contient une liste de Pays (Liste) et un objet utilisateur qui est titulaire d'un Pays de l'objet. J'ai vue que l'utilisateur peut sélectionner son pays.

C'est extrait de ma page jsp:

<form:select path="user.country">
    <form:option value="-1">Select your country</form:option>
    <form:options items="${account.countries}" itemLabel="name" itemValue="id" />
</form:select>

C'est mon Compte modèle:

public class Account {

    private User user;
    private List<Country> countries;

    public User getUser() {
        return user;
    }

    public void setUser(User user) {
        this.user = user;
    }

    public List<Country> getCountries() {
        return countries;
    }

    public void setCountries(List<Country> countries) {
        this.countries = countries;
    }
}

Lors de la jsp charges (GET) de la forme:select affiche l'élément sélectionné de l'utilisateur actuel du pays. Le problème est que quand je poste le formulaire, j'obtiens cette exception:

Field error in object 'account' on field 'user.country': rejected value [90];
  codes [typeMismatch.account.user.country,typeMismatch.user.country,typeMismatch.country,typeMismatch.org.MyCompany.entities.Country,typeMismatch];
  arguments [org.springframework.context.support.DefaultMessageSourceResolvable: codes [account.user.country,user.country];
  arguments []; default message [user.country]];
  default message [Failed to convert property value of type 'java.lang.String' to required type 'org.MyCompany.entities.Country' for property 'user.country';
  nested exception is java.lang.IllegalStateException: Cannot convert value of type [java.lang.String] to required type [org.MyCompany.entities.Country] for property 'country': no matching editors or conversion strategy found]

Une idée de comment je peux surmonter cela?

OriginalL'auteur Mr T. | 2012-10-13