Spring boot 在spring控制器中获取表单数据

Spring boot 在spring控制器中获取表单数据,spring-boot,Spring Boot,嗨,它可能看起来像复制品,但它不是 我正在使用SpringBoot构建一个RESTAPI,需要获取客户端应用程序在POST请求中发送的表单数据。 出于测试目的,我使用了邮递员。到目前为止,我已经试过了 @PostMapping("/feed/comment/add/{feedId}") public ResponseEntity<BaseResponse> addComment(@RequestHeader(name = Constants.USER_ID_HEADER) i

嗨,它可能看起来像复制品,但它不是

我正在使用SpringBoot构建一个RESTAPI,需要获取客户端应用程序在POST请求中发送的表单数据。 出于测试目的,我使用了邮递员。到目前为止,我已经试过了

@PostMapping("/feed/comment/add/{feedId}")
    public ResponseEntity<BaseResponse> addComment(@RequestHeader(name = Constants.USER_ID_HEADER) int userId, 
            @PathVariable("feedId") int feedId,
            @RequestParam("comment") String comment
            ) {
        LOGGER.info("Received add comment request with comment:"+comment);

        return new ResponseEntity<BaseResponse>(new BaseResponse("You are not feed owner", RESPONSETYPE.ERROR), HttpStatus.UNAUTHORIZED);
    }
我非常确定,通过PlaneServlet,我可以使用request.getParameter(“comment”)访问此文件 不确定在使用spring rest控制器的情况下如何获取它。

“必需的字符串参数‘comment’不存在”此错误发生在需要此参数但您未发送它时

@RequestParam(value=“comment”,required=false) 这将使comment参数成为可选参数。因此,如果您没有发送comment参数,则可以

@PostMapping("/feed/comment/add/{feedId}")
public ResponseEntity<BaseResponse> addComment(@RequestHeader(name = Constants.USER_ID_HEADER) int userId, 
        @PathVariable("feedId") int feedId,
        @RequestParam Map<String, String> values
        ) {
    for(String key: values.keySet()) {
        System.out.println(key+":"+values.get(key));            
    }

    return new ResponseEntity<BaseResponse>(new BaseResponse("You are not feed owner", RESPONSETYPE.ERROR), HttpStatus.UNAUTHORIZED);
}
------WebKitFormBoundarymk97RU1BbJyR0m3F
Content-Disposition: form-data; name:"comment"

test comment
------WebKitFormBoundarymk97RU1BbJyR0m3F--