REST / Spring:将http-body信息(普通/文本)转换为变量/对象?

时间:2015-02-03 20:53:14

标签: java spring rest annotations

使用以下代码,我设法读取作为字符串以普通/文本形式出现的http-post信息,并使用字符串对其进行响应。

我的问题是:我认为,http-body将包含以下形式的信息:

Name="myName"&place="here"&age="40"

我将此作为整个字符串接收,但在找到将这些对放入变量或对象的方法时迷失了方向。并将我的回应放入此架构中 你能帮忙吗?

@RequestMapping( value="/info", 
method = RequestMethod.POST, consumes = {"text/plain"} )

public ResponseEntity<String> receiveBody(@RequestBody String vtext  )
{
    ....
    ....
    return new ResponseEntity<String> (vtext, headers, HttpStatus.OK);
}
}

1 个答案:

答案 0 :(得分:1)

我认为处理此类问题的更好的解决方案是@RequestParam注释。我们假设你有一个这样的表格:

 <input type="text" name="name" id="name"/>
 <input type="text" name="age" id="age"/>
 <input type="text" name="place" id="place"/>

现在你要做的就是在方法的参数列表中加入适当的注释。例如:

@RequestMapping( value="/info", method = RequestMethod.POST)
public ResponseEntity<String> receiveBody(@RequestParam("name") String name, @RequestParam("place") String place, @RequestParam("age") int age)
{
    //you can do something with variables age, name and place here
    ....
    return new ResponseEntity<String> ("someResponse", headers, HttpStatus.OK);
}