Passer un objet de javascript à spring controller
achrefBIG
Messages postés
40
Statut
Membre
-
KX Messages postés 19031 Statut Modérateur -
KX Messages postés 19031 Statut Modérateur -
Bonjour, Je bloque sur un porblème depuis longtemps, mon objectif c'est de passer un objet de javascript à un controleur spring, mais j'obtiens toujours une erreur : There was an unexpected error (type=Bad Request, status=400).
Required request body is missing: public java.lang.String PersonController.addPerson(.entities.Person)
Voici le code en javascript:
et voici mon contrôleur
Required request body is missing: public java.lang.String PersonController.addPerson(.entities.Person)
Voici le code en javascript:
<script>
var person = {"name":"John"};
$.ajax({
url:"http://localhost:8080/abc/addPerson",
type: 'POST',
data: person,
dataType: "html",
contentType: 'application/json',
mimeType: 'application/json',
success: function(data){
console.log(data);
return false;
}
});
</script>
et voici mon contrôleur
@Controller
@RequestMapping("/abc")
public class PersonController {
@RequestMapping(value = "/addPerson", method = { RequestMethod.GET, RequestMethod.POST })
public @ResponseBody String addPerson(@RequestBody Person person) {
System.out.println(person.getName());
return "Successfully added person";
}
}
Configuration: Windows / Chrome 90.0.4430.85
A voir également:
- Passer un objet de javascript à spring controller
- Passer de qwerty a azerty - Guide
- Passer de windows 7 à windows 10 - Accueil - Mise à jour
- Passer de majuscule à minuscule - Guide
- Mot de passe - Guide
- Trousseau mot de passe iphone - Guide
1 réponse
Bonjour,
Je t'invite à regarder cet article : https://forums.commentcamarche.net/forum/affich-37598446-implementation-d-une-architecture-multi-tiers-avec-spring
Et le code associé : https://codes-sources.commentcamarche.net/source/103029-implementation-d-une-architecture-multi-tiers-en-jee-avec-spring
C'est un projet de base qui fonctionne que tu peux modifier progressivement pour arriver à tes fins sans subir tous les écueils de tout faire de zéro.
Un petit focus sur le code JS :
Et le code Spring correspondant :
Je t'invite à regarder cet article : https://forums.commentcamarche.net/forum/affich-37598446-implementation-d-une-architecture-multi-tiers-avec-spring
Et le code associé : https://codes-sources.commentcamarche.net/source/103029-implementation-d-une-architecture-multi-tiers-en-jee-avec-spring
C'est un projet de base qui fonctionne que tu peux modifier progressivement pour arriver à tes fins sans subir tous les écueils de tout faire de zéro.
Un petit focus sur le code JS :
function addUser(){
var user = '{'
+ '"firstName":"' + document.getElementById("addUser_firstName").value
+ '", "lastName":"' + document.getElementById("addUser_lastName").value
+ '", "street":"' + document.getElementById("addUser_street").value
+ '", "postCode":"' + document.getElementById("addUser_postCode").value
+ '", "city":"' + document.getElementById("addUser_city").value
+ '"}';
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function(){
document.getElementById("addUser_iframe").srcdoc = this.responseText;
document.getElementById("allUsers_iframe").contentWindow.location.reload();
}
xhr.open('POST', '/users/new', true);
xhr.setRequestHeader("Content-Type", "application/json");
xhr.send(user);
return false;
}
Et le code Spring correspondant :
@RestController
public interface UserWebService {
@GetMapping("/users/all")
public List<UserDto> getAllUsers();
@PostMapping("/users/new")
public UserDto postUser(@RequestBody UserDto user);
}
@Data
public class UserDto {
private Long id;
private String firstName;
private String lastName;
private String street;
private String postCode;
private String city;
}