如何使用Spring MVC将APPLICATION_FORM_URLENCODED映射到对象

时间:2018-08-12 18:08:14

标签: forms spring-mvc post

如果我有以下内容...

@PostMapping(
        consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE
)
public String addShift(HttpServletRequest request){
    Map<String, String[]> parameterMap = request.getParameterMap();
    return "redirect:/";
}

我在请求中看到了发送的值。如果我尝试以下操作并将请求更改为JSON,这似乎可以正确映射...

@PostMapping(
    consumes = MediaType.APPLICATION_JSON_VALUE
)
public String addShift(@RequestBody VolunteerShift shift){
    System.out.println(shift.getTitle());
    return "redirect:/";
}

但是当我不能使用JSON提交表单时,我将不得不编写XMLHTTPRequest(如果我只能使用普通的提交,这似乎效率很低)。因此,我尝试使用常规的Submit,但是当我尝试类似的操作时...

@PostMapping(
        consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE
)
public String addShift(VolunteerShift shift){
    ...
    return "redirect:/";
}

这些值不会被映射,并且为空。有没有一种方法可以映射表单值,而无需在客户端将其转换为JSON?

0 个答案:

没有答案