我在为以下Json字符串创建适当的RequestParams时遇到问题:
{
"input": [
{
"personAdres": {
"plaats": "Amsterdam",
"straat": "Grietenstraat",
"huisnummer": "12",
"postcode": "4512UN""
},
"interesses": [
"gas_station",
"soccer"
]
},
{
"personAdres": {
"plaats": "Arnhem",
"straat": "Koningsweg",
"huisnummer": "3",
"postcode": "1953AA"
},
"interesses": [
"gas_station",
"soccer"
]
}
]
}
Run Code Online (Sandbox Code Playgroud)
我尝试了以下方法:
@RequestMapping(method = RequestMethod.GET, params = {"input", "personAdres", "plaats", "straat", "huisnummer", "postcode", "interesses"})
public
@ResponseBody`enter code here`
String getMovie(
@RequestParam(value = "input") String[] input,
@RequestParam(value = "personAdres") String[] personAdres,
@RequestParam(value = "plaats") String plaats,
@RequestParam(value = "straat") String straat,
@RequestParam(value = "huisnummer") String huisnummer,
@RequestParam(value = "postcode") String postcode,
@RequestParam(value = "interesses")String[] interesses,
ModelMap model
)
Run Code Online (Sandbox Code Playgroud)
这似乎不起作用.我收到以下错误.
找不到servlet请求的匹配处理程序方法:
任何人都可以帮助我创建正确的requestParams.
编辑:这似乎工作
@Controller
@RequestMapping("/dateSuggestie")
public class DateController {
@RequestMapping(method = RequestMethod.GET)
public
@ResponseBody
String getMovie(
@RequestParam(value = "input[0][personAdres][plaats]") String p0Plaats,
@RequestParam(value = "input[0][personAdres][straat]") String p0Straat,
@RequestParam(value = "input[0][personAdres][huisnummer]") String p0HuisNummer,
@RequestParam(value = "input[0][personAdres][postcode]") String p0PostCode,
@RequestParam(value = "input[0][interesses][]") String[] p0Interesses,
@RequestParam(value = "input[1][personAdres][plaats]") String p1Plaats,
@RequestParam(value = "input[1][personAdres][straat]") String p1Straat,
@RequestParam(value = "input[1][personAdres][huisnummer]") String p1HuisNummer,
@RequestParam(value = "input[1][personAdres][postcode]") String p1PostCode,
@RequestParam(value = "input[1][interesses][]") String[] p1Interesses) {
Run Code Online (Sandbox Code Playgroud)
M. *_*num 17
您正在向控制器发送JSON而不是请求参数.@RequestParam并且@ModelAttribute仅在将数据作为请求参数提交时才起作用.
您的JSON作为请求正文发送给控制器.对于这个春天有@RequestBody注释.一般来说,你不想自己解析身体,而是使用框架为你做繁重的工作.为此,像杰克逊这样的图书馆存在.
这些框架还与Spring集成,可以在参考指南中阅读.
您需要构造一个对象,它是JSON的Java表示形式,以便Jackson可以进行转换.然后,您可以将控制器方法重写为此类似的内容
@RequestMapping(method = RequestMethod.GET)
@ResponseBody
public String getMovie(@RequestBody YourObject) { ... }
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
17858 次 |
| 最近记录: |