Tout d’abord, voici ma Controller
:
@RequestMapping(value = "/esta", method = RequestMethod.POST)
public String handleRequest(HttpServletRequest request) {
Esta estaobject = new Esta();
// To test, if the parameters are set
String user = request.getParameter("user");
String name = request.getParameter("name");
String shortname = request.getParameter("shortname");
String was_admin_string = request.getParameter("was_admin");
String sap_nr = request.getParameter("sap_nr");
String etl_string = request.getParameter("etl");
if (user != null && name != null && shortname != null && was_admin_string != null && sap_nr != null && etl_string != null) {
some code...
}
request.getSession().setAttribute("esta", estaobject);
return "esta";
}
Lorsque je visite le site, il vérifie avec l'instruction if
- s'il existe certains paramètres.
Si non, alors il devrait simplement afficher mon formulaire. Ensuite, lorsque je remplis le formulaire, il l'envoie avec POST
et maintenant, il y a quelques paramètres et il passe par l'instruction if
-.
Mon problème est le suivant: lorsque je visite le site pour la première fois, il ne s'agit pas d'une demande POST
-, je reçois donc le message d'erreur Request method 'GET' not supported
.
Mais changer le formulaire en une demande GET
- n'est pas une option pour moi. Il doit être POST
.
Donc, existe-t-il une solution pour gérer le même contrôleur dans les demandes POST
et GET
?
Faites-en un tableau de valeurs de méthodes auxquelles il est mappé, comme ceci:
@RequestMapping(value = "/esta", method = {RequestMethod.POST, RequestMethod.GET})
Ou vous pouvez écrire des méthodes séparées
@RequestMapping(value = {#some_vale}, method = RequestMethod.GET)
public random_method #1{
}
@RequestMapping(value = { #some_value }, method = RequestMethod.POST)
public random_method #2{
}
vous pouvez maintenant utiliser votre page Web spécifique et une autre page pour remplir le formulaire. J'espère que cela vous aidera.
Au printemps, les développeurs peuvent utiliser RequestMethod.POST et RequestMethod.GET sur le même contrôleur pour créer un tableau de méthodes comme celui-ci:
@RequestMapping(value = "/esta", method = {RequestMethod.POST, RequestMethod.GET})
public String handleRequest(HttpServletRequest request) {
//Implementation of your code.
}