Bonjour,
je suis débutante sur angular2 , je veux moudifier la table "User" mais je je rencontre un erreur "Required String parameter 'resp' is not present"
j'utilise Spring MVC pour développer des Web Services

@RequestMapping(value="/update", method = {RequestMethod.GET,RequestMethod.POST})around @ResponseStatus(value=HttpStatus.OK)around public @ResponseBody User updateUser(around @RequestParam(value="resp") String resp){around User user=new User();around userRepository.update(user);around return user;around }

et voila l'invocation du web service coté angular :
updateUsers(user:Users){around var data=JSON.stringify({resp: "abc"});around var headers = new Headers();around headers.append('Content-Type', 'application/json');around this.http.post('http://localhost:8080/rest-ws/api/update', data, { headers: headers })around .map(res=> res.json()).subscribe(res => {around var result = res;around console.log("result : ",result);around });around around}

Voila je rencontre un petit problème avec mon code.
Required String parameter 'resp' is not present. quand je clique sur bouton enregistrer.

aidez moi svp
Merci

2 réponses


Salut,
Tout d'abord ça serait cool de mettre le code bien formatté, c'est plus facile pour lire ;) .

L'erreur vient du fait que tu envois au serveur Java un string. Alors que lui attend un objet JSON avec comme attribut : resp.
Dans ton code côté client il te faut donc pas formatter ton objet data en string mais le laisser en tant qu'objet, comme ceci :

var data={resp: "abc");
Safa Ing
Auteur

bonjour workfel,
oui t'a raison le code n'est pas assez claire. Merci pour votre réponse
en faite je modifie mon code, maintenant j'envoie String " var objectToSend='resp=test';" au serveur et le format de header: " headers.append('Content-Type', 'application/x-www-form-urlencoded');" et ç'a résolu le problème .
voici le modifcation :

updateUsers(user:Users){ 
var objectToSend='resp=test';
var headers = new Headers();
headers.append('Content-Type', 'application/x-www-form-urlencoded');
this.http.post('http://localhost:8080/rest-ws/api/update',objectToSend , { headers: headers })
 .map(res=> res.json()).subscribe(res => {
   var result = res;
 console.log("result : ",result);
 });
 }