Skip to content

控制器 Controller

前言

在 Spring 中,Controller 是用来接受 Web 的数据请求的。在 AIFlowy 中,我们开发了一个名称为 @JsonBody 的注解,用于增强对 Controller 的接收和解析前端传入的 JSON 数据。


@JsonBody 示例代码

示例 1

前端传入内容如下:

json
{
  "myId": 123
}

后端 Controller 可以通过如下的方式来接收:

java
public Result(@JsonBody("myId") int a) {
    System.out.println(a);
}

以上代码中,a的值为 123。

java
public Result(@JsonBody(value="myId",required = true) int a){
System.out.println(a);
}

若 JsonBody添加了 required = true的配置,而前端未传入 "myId" 时,则会报错并告知前端必须传入 myId。

示例2 前端传入内容如下:

json
{
  "myId":123,
  "other":{
    "account":{
      "id":100,
      "name":"michael"
    }
  }
}

后端 Controller 可以通过如下的方式来接收:

Java
public Result(@JsonBody("myId")int a,@JsonBody("other.account")Account account){

    System.out.println(a);
    System.out.println(account);
}

以上代码中,a的值为 123。account 的 id 为 100,name 为 “michael”。