簡體   English   中英

我們如何在SpringBoot中使用@RequestBody傳遞列表和單獨的字符串

[英]How can we pass a List and a separate String using @RequestBody in SpringBoot

我已經編寫了這段代碼,但狀態為: JSON出現400 Bad Request錯誤

@CrossOrigin
    @PostMapping(value = "/retail/scorecard/addKPI", consumes = {MediaType.APPLICATION_JSON_VALUE, MediaType.APPLICATION_XML_VALUE})
public @ResponseBody Object addKpi(@Valid @RequestParam List<KPIReq> kpiReqList,@RequestParam("goalId") String goalId,
        HttpServletRequest req, HttpServletResponse res) throws RecordNotFoundException, Exception {

使用@Valid @RequestBody List<KPIReq> kpiReqList作為列表。 可能是您的json中的錯誤。

Request參數本質上將請求uri的一部分映射到一個對象。 像uri:

http://localhost/api/v1/search?type=11&type=12&color=RED&color=GREY

你可以像這樣映射它:

        public @Responsebody Object addKpi(
        @RequestParam(value="type", required=false) List<String> types,
        @RequestParam(value="color", required=false) List<String> colors)
        {
            ....
        }

而不是將List作為RequestParam傳遞,為什么不嘗試將其作為請求正文的一部分提供。 復雜對象最好作為請求正文發送。

    @CrossOrigin
    @PostMapping(value = "/retail/scorecard/addKPI", consumes = {MediaType.APPLICATION_JSON_VALUE, MediaType.APPLICATION_XML_VALUE})
    public @ResponseBody Object addKpi(@Valid @RequestBody List<KPIReq> kpiReqList,@RequestParam("goalId") String goalId,
            HttpServletRequest req, HttpServletResponse res) throws RecordNotFoundException, Exception {

您的錯誤是400錯誤的請求,這意味着您的函數具有類型X的對象,但沒有收到,您​​能嘗試為您添加名稱嗎

 @RequestParam(name = "kpiReqList")  
 @RequestParam(name ="goalId")

列表的類型以及ID Json或XML?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM