我在将数据从我的 React 应用程序发送到我的 Spring Boot 控制器时遇到了一点问题,我通过 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,很简单,我发送声明是一个整数和项目是一个对象数组,我的对象结构是:{ 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 方法。我之前所做的是创建一个用作 RequestBody 的类:@Getter @Setterpublic class TypesConformites { private int declaration; private ArrayList<Item> items; public TypesConformites() { }} 这是我的项目类:@Getter @Setterpublic class Item { private int id; private String title; private boolean isSelected; public Item() { }}
1 回答
莫回无
TA贡献1865条经验 获得超7个赞
通常,该项目由杰克逊反序列化,如下所示:-
public void setId(String firstName) {
public void setTitle(String lastName) {
public void setSelected(boolean isActive) {
为避免这种情况,您可以更改项目和请求正文中的映射名称.. 或用您的 isSelected 注释@JsonProperty
添加回答
举报
0/150
提交
取消
