如何在Spring MVC中显式获取发布数据?

有没有办法获得发布数据本身? 我知道弹簧处理绑定发布数据到Java对象。 但是,考虑到我想要处理的两个领域,我怎样才能获得这些数据呢?

例如,假设我的表单有两个字段:

<input type="text" name="value1" id="value1"/> <input type="text" name="value2" id="value2"/> 

我将如何去检索我的控制器中的这些值?

如果您正在使用其中一个内置的控制器实例,则控制器方法的其中一个参数将是Request对象。 您可以调用request.getParameter("value1")来获取Post数据值。

如果您使用的是Spring MVC注释,则可以为您的方法参数添加一个带注释的参数:

 @RequestMapping(value = "/someUrl") public String someMethod(@RequestParam("value1") String valueOne) { //do stuff with valueOne variable here } 

Spring MVC运行在Servlet API之上。 所以,你可以使用HttpServletRequest#getParameter()来做到这一点:

 String value1 = request.getParameter("value1"); String value2 = request.getParameter("value2"); 

在Spring MVC中, HttpServletRequest应该已经可以作为handleRequest()方法的参数之一。

对OP的确切问题的另一个答案是将consumes内容types设置为"text/plain" ,然后声明@RequestBody Stringinput参数。 这将传递POST数据的文本作为声明的Stringvariables( postPayload在下面的例子中)。

当然,这假定你的POST有效载荷是文本数据(正如OP陈述的那样)。

例:

  @RequestMapping(value = "/your/url/here", method = RequestMethod.POST, consumes = "text/plain") public ModelAndView someMethod(@RequestBody String postPayload) { // ... }