Existe-t-il un moyen d'obtenir les données de poste proprement dites? Je sais que spring gère la liaison des données de publication à des objets Java. Mais, étant donné que deux champs doivent être traités, comment puis-je obtenir ces données?
Par exemple, supposons que mon formulaire comporte deux champs:
<input type="text" name="value1" id="value1"/>
<input type="text" name="value2" id="value2"/>
Comment pourrais-je récupérer ces valeurs dans mon contrôleur?
Si vous utilisez l'une des instances de contrôleur intégrées, l'un des paramètres de votre méthode de contrôleur sera l'objet Request. Vous pouvez appeler request.getParameter("value1")
pour obtenir la valeur de données POST (ou PUT)).
Si vous utilisez des annotations Spring MVC, vous pouvez ajouter un paramètre annoté aux paramètres de votre méthode:
@RequestMapping(value = "/someUrl")
public String someMethod(@RequestParam("value1") String valueOne) {
//do stuff with valueOne variable here
}
Une autre réponse à la question exacte du PO consiste à définir le type de contenu consumes
sur "text/plain"
puis déclarer un @RequestBody String
paramètre d'entrée. Cela transmettra le texte des données POST en tant que variable déclarée String
(postPayload
dans l'exemple suivant).
Bien sûr, cela suppose que votre POST charge utile est constitué de données texte (comme l'OP l'a indiqué)).
Exemple:
@RequestMapping(value = "/your/url/here", method = RequestMethod.POST, consumes = "text/plain")
public ModelAndView someMethod(@RequestBody String postPayload) {
// ...
}
Spring MVC s'exécute au-dessus de l'API Servlet. Donc, vous pouvez utiliser HttpServletRequest#getParameter()
pour ceci:
String value1 = request.getParameter("value1");
String value2 = request.getParameter("value2");
Le HttpServletRequest
devrait déjà être disponible dans Spring MVC en tant que l'un des arguments de méthode de la méthode handleRequest()
.