Ajax passer une “Carte” de l'objet à Spring MVC Contrôleur
Il semble que Spring MVC ne sais pas comment mapper un javascript "à la carte" pour un Java objet map
Dans l'INTERFACE web, dire, foo.jsp,
<script>
var myMap = {};
myMap["people"] = ["Alex","Bob","Charles","Dave"];
myMap["fruit"] = ["Apple","Orange"];
$.ajax({
type : "POST",
url : "/myURL",
data : "myMap=" + myMap, //I tried "myMap="+JSON.stringify(myMap), as well, it doesn't work neither
success : function(response) {
alert("Success! response = " + response);
},
error : function(e) {
alert("AJAX error");
}
});
</script>
Sur le côté serveur, j'ai un modèle de données de la classe, juste pour recevoir des données à partir de l'INTERFACE Web
@Setter @Getter
class Parameters {
private Map<String, List<String>> myMap; //this is the java class I want to map the string to
}
Et dans le contrôleur,
@RequestMapping(value = "/myURL", method = RequestMethod.POST)
@ResponseBody
public List<String> fooControl(Parameters parameters ) {
//do something with parameters ...
}
L'erreur que j'ai sur le côté serveur, c'est comme,
[tomcat:launch] Aug 14, 2013 3:12:37 PM org.apache.catalina.core.StandardWrapperValve invoke
[tomcat:launch] SEVERE: Servlet.service() for servlet dispatcher threw exception
[tomcat:launch] org.springframework.validation.BindException:
org.springframework.validation.BeanPropertyBindingResult: 1 errors
[tomcat:launch] Field error in object 'Parameters ' on field
'myMap': rejected value [{"people":["Alex","Bob","Charles","Dave"],"fruit":
["Apple","Orange"]}]; codes
[typeMismatch.repairInfomationParametersExperimental.constraints,typeMismatch.constraints,typeMismatch.java.util.Map,typeMismatch]; arguments
[org.springframework.context.support.DefaultMessageSourceResolvable: codes
[repairInfomationParametersExperimental.constraints,constraints]; arguments []; default message
[constraints]]; default message [Failed to convert property value of type 'java.lang.String' to
required type 'java.util.Map' for property 'constraints'; nested exception is
java.lang.IllegalStateException: Cannot convert value of type [java.lang.String] to required type
[java.util.Map] for property 'myMap': no matching editors or conversion strategy found]
Je pense qu'il y est une façon de dire "Printemps" combien de carte au format JSON chaîne de Java Carte?
Merci!
OriginalL'auteur Alfred Zhong | 2013-08-14
Vous devez vous connecter pour publier un commentaire.
Modifier des codes javascript:
Modifier des codes java côté serveur:
OriginalL'auteur Larry.Z
J'ai passé la Carte de l'objet de Java à l'aide de code ci-dessous :
Code Javascript :
Côté Serveur Code :
OriginalL'auteur Sanchi Girotra