Ich versuche, in der es von meinem Controller im Frühjahr ein Objekt mit einem anderen Objekt zu erhalten, aber ich habe diesen Fehler :Fehler beim Eigenschaftswert vom Typ ‚java.lang.String‘ konvertieren - Objekt Empfängt mit einem anderen Objekt im Frühling
ich den Anruf mit so mache:
$("#form").ajaxForm({
type: "POST",
headers: {
Authorization: $cookieStore.get("userPassword"),
FeatureName: name,
},
success: function (data) {
console.log("reload page");
},
dataType: "text"
}).submit();
bekomme ich den Fehler:
Failed to convert property value of type 'java.lang.String' to required type 'com.Option' for property 'option'
ist dies die gesamte Ausgangsleitung:
org.springframework.validation.BeanPropertyBindingResult: 1 errors
Field error in object 'modelDTO' on field 'option': rejected value [{"id":3,"optionName":"Other"}]; codes [typeMismatch.modelDTO.option,typeMismatch.option,typeMismatch.com.Option,typeMismatch]; arguments [org.springframework.context.support.DefaultMessageSourceResolvable: codes [modelDTO.option,option]; arguments []; default message [option]]; default message [Failed to convert property value of type 'java.lang.String' to required type 'com.Option' for property 'option'; nested exception is java.lang.IllegalStateException: Cannot convert value of type [java.lang.String] to required type [com.Option] for property 'option': no matching editors or conversion strategy found]
das ist mein Controller und der DTO
@RequestMapping(value = "/save", method = RequestMethod.POST)
@Transactional
public @ResponseBody void save(@ModelAttribute("form") ModelDTO model)
...
public class ModelDTO implements Serializable
{
private static final long serialVersionUID = 3276874897891652914L;
private Long userId;
private Option option;
public Long getUserId()
{
return userId;
}
public void setUserId(Long userId)
{
this.userId = userId;
}
public Option getOption()
{
return option;
}
public void setOption(Option option)
{
this.option = option;
}
}
Feder erlaubt es, diese Arbeit zu tun?
Ja, es funktioniert ... Und das Problem ist der Controller ... Sie senden JSON aber erwarten Basismodell Attributbindung. Beschriften Sie das Methodenargument mit '@ RequestBody'. Es sei denn, Sie sind wirklich seltsame Dinge tun ... –
Ich fügte hinzu, die '@ RequestBody' und ich bin immer' POST https: // localhost: 8443/app/save 415 (Unsupported Media Type) ' – gogoru
Entfernen' dataType'. –