¿Hay alguna forma de obtener los datos de la publicación? Sé que Spring maneja la vinculación de datos de publicación a objetos java. Pero, dados dos campos que quiero procesar, ¿cómo puedo obtener esos datos?
Por ejemplo, supongamos que mi formulario tiene dos campos:
<input type="text" name="value1" id="value1"/>
<input type="text" name="value2" id="value2"/>
¿Cómo haría para recuperar esos valores en mi controlador?
java
spring-mvc
Royhowie
fuente
fuente
Otra respuesta a la pregunta exacta del OP es establecer el
consumes
tipo de contenido"text/plain"
y luego declarar un@RequestBody String
parámetro de entrada. Esto pasará el texto de los datos POST como laString
variable declarada (postPayload
en el siguiente ejemplo).Por supuesto, esto supone que su carga útil POST son datos de texto (como dijo el OP).
Ejemplo:
@RequestMapping(value = "/your/url/here", method = RequestMethod.POST, consumes = "text/plain") public ModelAndView someMethod(@RequestBody String postPayload) { // ... }
fuente
value1
yvalue2
, esto crearía una Cadena para ambos valores. Entonces, ¿necesitaría analizar los valores individuales? ¿Por qué hacer eso cuando puede especificar / obtener cada valor individualmente como en la respuesta aceptada?RequestMethod.POST
. Incluso agregué@CrossOrigin(origins = "*")
pero sigo obteniendo lo mismo ... No sé qué está pasando ... He usado la misma firma que tu respuesta (excepto quesomeMethod
devuelve unString
en mi caso) ...Spring MVC se ejecuta sobre la API de Servlet. Entonces, puedes usar
HttpServletRequest#getParameter()
para esto:String value1 = request.getParameter("value1"); String value2 = request.getParameter("value2");
El
HttpServletRequest
ya debería estar disponible para usted dentro Spring MVC como uno de los argumentos del método delhandleRequest()
método.fuente
RequestMethod.POST
. Incluso agregué,@CrossOrigin(origins = "*")
pero sigo recibiendo lo mismo ... No sé qué está pasando ... He usado la misma firma que su respuesta (excepto quesomeMethod
devuelve unString
en mi caso) ...