[2019/05/17]解決springboot測試List接口時JSON傳參異常


報錯信息,大致如下

c.c.c.c.a.BaseControllerExceptionHandler : 運行時異常:
java.lang.IllegalStateException: No primary or default constructor found for interface java.util.List
at org.springframework.web.method.annotation.ModelAttributeMethodProcessor.createAttribute(ModelAttributeMethodProcessor.java:212)
......
WARN 18472 --- [nio-9090-exec-2] .m.m.a.ExceptionHandlerExceptionResolver : Resolved exception caused by Handler execution: java.lang.IllegalStateException: No primary or default constructor found for interface java.util.List

再次修改后仍又報錯:

org.springframework.http.converter.
HttpMessageNotReadableException: Required request body is missing:

(以上報錯信息谷歌翻譯了一遍,大致知道了是屬性接收異常和http消息轉換異常)

原因 : 接口不規范, 后端一時快, 前端兩行淚
第二次報錯原因, @RequestBody這個標簽在post 、put 方法中用於接收json格式的數據 ,get方法不行! get方法不行!
第一次報錯原因, @RequestBody用來接收一個List當做整體, 不要用@RequestParam--JSON格式的list沒法實現對應了, 也不要錯誤寫成@Param~~
規范寫法
    @ApiOperation(value = "批量刪除")
    @PostMapping(value = "delBatchIds")
    public Boolean delBatchIds(@RequestBody List<Long> ids){
        return xxxxxService.deleteBatchIds(ids);
    }
再次測試,OK

image.png
image.png


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM