0
votes

org.springframework.web.httprequestMethodnotsupporteDException: méthode de demande 'Get' Non pris en charge

J'étudie une botte de printemps et une jpa de printemps. J'ai pu lire et écrire avec succès dans la base de données, mais le problème se produit lors de la mise à jour des données.

localhost:8080/updatePerson?id=4&name=personame&age=34


2 commentaires

S'il vous plaît partager aussi l'URL de la demande.


Localhost: 8080 / updateperson? Id = 4 & Nom = Personnale et Âge = 34


3 Réponses :


0
votes

Si vous cochez l'URL: localhost: localhost: 8080 / updateperson? ID = 4 et nom = Personnale & Age = 34, la méthode que vous essayez d'accéder à (updateperson) est un mettre , vous devez donc envoyer un < Code> Mettez au lieu d'un obtenez . Vous pouvez voir le type de méthode dans l'annotation: xxx

Selon la manière dont vous faites la demande, il devrait y avoir un endroit où vous utilisez la méthode utilisée. En outre, en regardant l'URL, il ne semble pas y adapter à aucune demande puisque dans le / updateperson, vous vous attendez à une personne d'objet dans le corps, mais envoyez: ? Id = 4 & nom = Personnale et Âge = 34 comme requête Paramètres.

Un exemple de curl avec un corps qui serait accepté par votre méthode: xxx



0
votes

Ayez un meilleur regard sur vos points d'extrémité:

@GetMapping("update")
public String updatePerson(){
    System.out.println("update to updateperson html");
    return "updateperson";
}
@PutMapping("/updatePerson")
public String updatePerson(Person person){
    System.out.println("UPDATING TO" + person.getAge()+" : "+person.getName() + " : "+person.getPid());
    personRepository.save(person);
    return "updateperson";
}  


2 commentaires

Dans ce cas, le courant de mise à jour doit toujours être mis ou poster puisqu'il reçoit un objet et l'enregistre à la DB.


Dans le "formulaire HTML", j'ai déclaré la méthode comme poste (HTML ne supporte pas la prise en charge), bien que lorsque j'utilise à la place @ getMapping à la place de @ putmapping, les données sont insérées (non mises à jour) sous forme de tuple séparé (puisqu'il obtient), Alors, comment mettra à jour les données dans MySQL?



0
votes

Vous envoyez une demande lorsque vous avez ajouté un @putMapping dans votre méthode updateperson . Si vous souhaitez accéder à updateperson , vous devez essayer de frapper ce point final avec un mettre la méthode .

Utilisez Obtenir la méthode lors de l'accès à localhost: 8080 / Mettre à jour et utilisez Mettez la méthode lors de l'accès à localhost: 8080 / updateperson


1 commentaires

J'ai @ getMapper pour / mettre à jour et @ putmapping pour / updateperson, le problème est que les données sur / updateperson provient d'un formulaire HTML, qui prend uniquement en charge la méthode d'obtention et de poste, même si j'ai utilisé "POST" dans mon formulaire HTML (dans Document updateperson.html), mes données envoyées par formulaire se trouve dans l'URL (qui est censée se produire pour seulement obtenir la méthode).