无法将数组从JS获取到我的Spring Boot控制器?

将数据从React应用程序发送到Spring Boot Controller时遇到了一个小问题,我通过put方法发送了数据,但出现400错误,并且出现了eclipse错误,所以我要做的是:


export const changeContratTypes = (idContrat, items, declaration) => {

    const endpoint = template(CONTRAT_TYPES_CHANGE);

    return instance // just an axios instance

      .put(endpoint({ idContrat }), { items, declaration })

      .then(values => values)

      .catch(err => err.response);

};

我的端点常量是url,很简单,我发送的声明是整数,而item是对象数组,我的对象结构是:


   id: 1, // or 2, 3, ....

   isSelected: true, // or false

   title: "a String here"       

}

为了在Spring Boot中得到这个,我在控制器中创建了这个方法:


@CrossOrigin(origins = "*")

@ApiOperation(value = "${contrat.recuperation}", notes = "${contrat.recuperation.notes}", response = ContratDetailDto.class)

@PutMapping(value="/{idContrat}/trtype")

@ApiModelProperty(example = "4000004")

@ApiResponses(value = {

        @ApiResponse(code = 200, message = "Enrigistrer Les types de contrats ") })

public ResponseEntity enrigistrerTypesDeContrat(@ApiParam(value = "${contrat.recuperation.param.id}") @PathVariable long idContrat, @RequestBody TypesConformites tcf) {

    if (log.isDebugEnabled()) {

        log.debug("appel de la méthode enrigistrerTypesDeContrat");

    }


    System.out.println("Voila "+tcf.getDeclaration());

    return ResponseEntity.ok(HttpStatus.OK);

}

该控制器映射良好,其他方法也可以正常工作,但是我使用的所有方法都是Get Methods。


在此之前,我要做的是创建一个用作RequestBody的类:


@Getter @Setter

public class TypesConformites {


   private int declaration;

   private ArrayList<Item> items; 


   public TypesConformites() {

   }


这是我的Item类:


@Getter @Setter

public class Item {

   private int id;

   private String title;

   private boolean isSelected;


   public Item() {

   }

}


该代码有什么问题,任何帮助将不胜感激。



梵蒂冈之花
浏览 140回答 1
1回答

倚天杖

通常,该商品会像这样由杰克逊反序列化:-public void setId(String firstName) {public void setTitle(String lastName) {public void setSelected(boolean isActive) {为了避免这种情况,您可以在Item和request主体中更改映射名称。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript